Объединение прогнозируемых выходных данных с набором тестовых данных (закрытая предварительная версия)

Код

  • Код на питоне
  • Загрузить набор тестовых данных
# azureml-core of version 1.0.72 or higher is required
# azureml-dataprep[pandas] of version 1.1.34 or higher is required
from azureml.core import Workspace, Dataset

subscription_id = 'xxxxxxxxxxxx'
resource_group = 'rgname'
workspace_name = 'mlworkspacename'

workspace = Workspace(subscription_id, resource_group, workspace_name)

dataset = Dataset.get_by_name(workspace, name='titanictest')
dataset.to_pandas_dataframe()
  • настроить запуск эксперимента
from azureml.core.experiment import Experiment
experiment = Experiment(workspace=workspace, name='Titanic-automl')
  • Получить сведения о запуске autoML
  • Идентификатор запуска — это раздел запуска эксперимента в пользовательском интерфейсе Azure ML.
# If you need to retrieve a run that already started, use the following code
from azureml.train.automl.run import AutoMLRun
remote_run = AutoMLRun(experiment = experiment, run_id = 'AutoML_d1646d14-f8d6-xxxx-xxxxx-xxxxxxxxxxxx')
  • получить лучший пробег
best_run, fitted_model = remote_run.get_output()
test_run = next(best_run.get_children(type='automl.model_test'))
test_run.wait_for_completion(show_output=False, wait_post_processing=True)
  • Распечатать метрики
# Get test metrics
test_run_metrics = test_run.get_metrics()
for name, value in test_run_metrics.items():
    print(f"{name}: {value}")
  • получить предсказанные значения
import pandas as pd

test_run.download_file("predictions/predictions.csv")
predictions_df = pd.read_csv("predictions.csv")
  • Загрузите новый набор данных для тестирования или проверки
# azureml-core of version 1.0.72 or higher is required
# azureml-dataprep[pandas] of version 1.1.34 or higher is required
from azureml.core import Workspace, Dataset

subscription_id = 'c46a9435-c957-4e6c-a0f4-b9a597984773'
resource_group = 'mlops'
workspace_name = 'mlopsdev'

workspace = Workspace(subscription_id, resource_group, workspace_name)

validation_data = Dataset.get_by_name(workspace, name='titanictest')
validation_data.to_pandas_dataframe()
  • Создание объектов и меток
# convert the test data to dataframe
X_test_df = validation_data.drop_columns(columns=[label_column_name]).to_pandas_dataframe()
y_test_df = validation_data.keep_columns(columns=[label_column_name], validate=True).to_pandas_dataframe()
  • запустить прогноз из приведенной выше модели
# call the predict functions on the model
y_pred = fitted_model.predict(X_test_df)
y_pred
  • Прогнозировать новые значения
from azureml.train.automl.model_proxy import ModelProxy

model_proxy = ModelProxy(best_run)
predictions, test_run_metrics = model_proxy.test(validation_data)

print(predictions.to_pandas_dataframe().head())
pd.DataFrame.from_dict(test_run_metrics, orient='index', columns=['Value'])
  • преобразовать набор тестовых данных в pandas
df = validation_data.to_pandas_dataframe()
  • Преобразование прогнозируемых результатов в фрейм данных
predictions_df = predictions.to_pandas_dataframe()
  • теперь объедините 2 набора данных каждой строки в каждую строку
result = pd.concat(df, predictions_df, axis=1, join="inner")

Первоначально опубликовано на https://github.com.