Объединение прогнозируемых выходных данных с набором тестовых данных (закрытая предварительная версия)
Код
- Код на питоне
- Загрузить набор тестовых данных
# 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.