Azure Студия машинного обучения генерирует Python скрипт для точной репликации эксперимента дизайнера - PullRequest
0 голосов
/ 02 марта 2020

Я работаю с Azure Студия машинного обучения. Первоначально я проводил эксперимент с дизайнером, который работал хорошо. Большинство моих экспериментов с двумя классами нейронных сетей.

Мои эксперименты в основном следуют этой схеме: данные => разделенные данные => два класса нейронных Net => модель поезда => модель оценки => модель оценки

Сейчас я нахожусь в положении, когда я чувствую, что было бы полезно, если бы я мог создавать эти эксперименты, используя только код. Причина, по которой я хочу это сделать, заключается в том, что я хочу провести много экспериментов, а также хочу создать новый вычислительный ресурс для каждого эксперимента. Это будет намного проще и менее трудоемким, если я смогу сделать это с помощью кода.

Пока мне удалось написать Python code usnig Notebooks на моем портале ML:

enter image description here

Код, который я придумал, чтобы повторить мой Azure эксперимент, таков:

from azureml.core import Dataset, Run
from azureml.core import Workspace
from sklearn.model_selection import train_test_split
from azureml.core import Experiment
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import classification_report,confusion_matrix, precision_score, recall_score

vTargetCol = 'Pred'
dataset_name = 'TestNN'

workspace = Workspace.from_config()
experiment = Experiment(workspace=workspace, name=vExpName)

gastro_ds = Dataset.get_by_name(workspace=workspace, name=dataset_name)
df = gastro_ds.to_pandas_dataframe()

target_column = [vTargetCol] 
predictors1 = list(set(list(df.columns))-set(target_column))

predictors = ['Column1', 'Column3', 'Column4', 'Column2', 'Column5', 'Column6']

X = df[predictors].values
y = df[target_column].values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=40)

mlp = MLPClassifier(hidden_layer_sizes=(8,8,8), activation='relu', solver='adam', max_iter=500)
mlp.fit(X_train,y_train.ravel())

predict_train = mlp.predict(X_train)
predict_test = mlp.predict(X_test)

run = experiment.start_logging()
run.log("PRECISION TRAIN", precision_score(y_train, predict_train))
run.log("PRECISION TEST", precision_score(y_test,predict_test))
run.log("RECALL TRAIN", recall_score(y_train, predict_train))
run.log("RECALL TEST", recall_score(y_test,predict_test))

print("DONE 2")

Примечание. Я использовал SKLearn, используя мой инструмент AI.

Этот эксперимент работает отлично.

Однако моя проблема в том, что в этом коде все мои типы данных должны быть числовыми, в противном случае этот код не работает.

Это не случай для моего Azure эксперимента, где по умолчанию он может обрабатывать не числовой c тип данных.

Поэтому мой вопрос, можно ли как-то вызвать Azure ML Two Class Neural Net классификатор, а не инструменты SKLearn или любая другая библиотека. И в этом отношении все инструменты AI, доступные в конструкторе.

Обратите внимание, мой вопрос не в том, как заставить мой код SKLearn принимать значения, отличные от нумерации c (хотя это может помочь). Мой вопрос заключается в том, можно ли вызвать инструменты Azure ML, используя только Python.

Чтобы задать это несколько иным способом, можно ли вывести версию кода эксперимента, созданного в конструктор, аналогично тому, как видеть код из записанного макроса в Excel?

...