使用 Python 來設定 AutoML 定型
適用於: Python SDK azureml v1 (部分機器翻譯)
在本指南中,您將了解如何使用 Azure Machine Learning 自動化 ML,利用 Azure Machine Learning Python SDK 來設定自動化機器學習、AutoML、定型執行。 自動化 ML 會為您挑選演算法和超參數,並產生馬上可進行部署的模型。 本指南會詳述各種可讓您用來設定自動化 ML 實驗的選項。
如需端對端範例,請參閱教學課程:AutoML - 為迴歸模型定型。
如果您想要使用無程式碼的體驗,則也可以在 Azure Machine Learning 工作室中設定無程式碼 AutoML 定型。
必要條件
針對本文,您需要,
Azure Machine Learning 工作區。 若要建立工作區,請參閱建立工作區資源。
已安裝 Azure Machine Learning Python SDK。 若要安裝 SDK,您可以執行下列任一動作:
建立計算執行個體,此執行個體會自動安裝 SDK,並針對 ML 工作流程預先設定。 如需詳細資訊,請參閱建立和管理 Azure Machine Learning 計算執行個體。
自行安裝
automl
套件,其中包括 SDK 的預設安裝。
重要
本文中的 Python 命令需要最新的
azureml-train-automl
套件版本。- 將最新的
azureml-train-automl
套件安裝到您的本機環境。 - 如需最新
azureml-train-automl
套件的詳細資訊,請參閱版本資訊。
警告
Python 3.8 與
automl
不相容。
選取實驗類型
在開始實驗之前,您應先決定所要解決的機器學習問題類型。 自動化機器學習支援 classification
、regression
和 forecasting
的工作類型。 深入了解工作類型。
注意
支援自然語言處理 (NLP) 工作:公開預覽版提供影像分類 (多類別和多標籤) 以及具名實體辨識等功能。 深入了解自動化 ML 中的 NLP 工作。
這些預覽功能是在沒有服務等級協定的情況下提供的。 特定功能可能不受支援,或是有所限制。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
下列程式碼會在 AutoMLConfig
建構函式中使用 task
參數,將實驗類型指定為 classification
。
from azureml.train.automl import AutoMLConfig
# task can be one of classification, regression, forecasting
automl_config = AutoMLConfig(task = "classification")
資料來源和格式
自動化機器學習支援位於本機桌面或雲端中 (例如 Azure Blob 儲存體) 所包含的資料。 資料可以讀入 Pandas DataFrame 或 Azure Machine Learning TabularDataset 中。 深入了解資料集。
機器學習中的定型資料需求:
- 資料必須是表格形式。
- 要預測的值 (目標資料行) 必須位於資料中。
重要
自動化 ML 實驗不支援以使用身分識別型資料存取的資料集進行定型。
若要進行遠端實驗,必須可從遠端計算存取定型資料。 自動化 ML 在處理遠端計算時只會接受 Azure Machine Learning TabularDatasets。
Azure Machine Learning 資料集會公開功能:
- 輕鬆地將靜態檔案或 URL 來源中的資料傳輸至您的工作區。
- 讓您的資料在執行於雲端計算資源時,可供定型指令碼使用。 如需如何使用
Dataset
類別將資料掛接至遠端計算目標的範例,請參閱如何使用資料集進行定型。
下列程式碼會從 Web URL 建立 TabularDataset。 如需如何從其他來源 (例如本機檔案和資料存放區) 建立資料集的程式碼範例,請參閱建立 TabularDataset。
from azureml.core.dataset import Dataset
data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"
dataset = Dataset.Tabular.from_delimited_files(data)
若要進行本機計算實驗,建議您使用 Pandas 資料框架來加快處理時間。
import pandas as pd
from sklearn.model_selection import train_test_split
df = pd.read_csv("your-local-file.csv")
train_data, test_data = train_test_split(df, test_size=0.1, random_state=42)
label = "label-col-name"
定型、驗證和測試資料
您可直接在 AutoMLConfig
建構函式中,指定個別的定型資料和驗證資料集。 深入了解如何設定定型、驗證、交叉驗證和測試資料,以進行 AutoML 實驗。
如果您未明確指定 validation_data
或 n_cross_validation
參數,則自動化 ML 會套用預設技巧來決定如何執行驗證。 會做出什麼決定取決於資料集內指派給 training_data
參數的資料列數目。
定型資料大小 | 驗證技術 |
---|---|
大於 20,000 個資料列 | 套用定型/驗證資料分割。 預設值是以 10% 的初始定型資料集做為驗證集。 接著,該驗證集會用於計量計算。 |
小於 20,000 個資料列 | 套用交叉驗證方法。 預設的摺疊數目取決於資料列數目。 如果資料集少於 1,000 個資料列,則會使用 10 個摺疊。 如果資料列介於 1,000 到 20,000 個之間,則會使用三個摺疊。 |
提示
您可以上傳測試資料 (預覽),以評估自動化 ML 為您產生的模型。 這些功能是實驗性預覽功能,可能會隨時變更。 了解如何:
如果您想要使用無程式碼的體驗,請參閱使用工作室 UI 設定 AutoML 中的步驟 12
大型資料
自動化 ML 支援使用為數不多、可在小型虛擬機器上成功地為巨量資料建置模型的演算法,在大型資料上進行定型。 自動化 ML 啟發學習法要仰賴屬性 (例如資料大小、虛擬機器記憶體大小、實驗逾時和特徵化設定) 來判斷是否應套用這些大型資料演算法。 深入了解自動化 ML 中支援的模型。
若要進行迴歸,支援線上梯度下降迴歸輸入變數和快速線性迴歸輸入變數
若要進行分類,支援平均感知分類器和線性 SVM 分類器;其中線性 SVM 分類器同時具有大型資料和小型資料版本。
如果您想要覆寫這些啟發學習法,請套用下列設定:
Task | 設定 | 備註 |
---|---|---|
封鎖資料串流演算法 | AutoMLConfig 物件中的 blocked_models ,並列出您不想要使用的模型。 |
導致執行失敗或執行時間很久 |
使用資料串流演算法 | AutoMLConfig 物件中的 allowed_models ,並列出您想要使用的模型。 |
|
使用資料串流演算法 (工作室 UI 實驗) |
封鎖所有模型,但您想要使用的巨量資料演算法除外。 |
計算要執行的實驗
接下來,請決定要在何處訓練模型。 自動化 ML 定型實驗可在下列計算選項上執行。
選擇本機計算:如果您的案例是關於使用小型資料和簡短定型 (也就是每個子回合的秒數或幾分鐘) 進行的初始探勘或示範,則在本機電腦上進行定型可能是一個更好的選擇。 沒有設定時間,可以直接使用基礎結構資源 (您的電腦或 VM)。 如需本機計算範例,請參閱此筆記本。
選擇遠端 ML 計算叢集:如果您要使用較大的資料集進行定型,例如在生產定型中建立需要較長定型的模型,則遠端計算會提供更好的端對端時間效能,因為
AutoML
會在叢集的節點上平行處理定型。 在遠端計算上,內部基礎結構的啟動時間大約會每個子回合增加 1.5 分鐘,而如果 VM 尚未啟動並執行,叢集基礎結構也會增加額外的分鐘數。Azure Machine Learning 受控計算是一項受控服務,可讓您在 Azure 虛擬機器的叢集上定型機器學習模型。 計算執行個體也支援作為計算目標。Azure 訂用帳戶中的 Azure Databricks 叢集。 您可以在設定用於自動化 ML 的 Azure Databricks 叢集找到更多詳細資料。 如需 Azure Databricks 的筆記本範例,請參閱此 GitHub 網站。
選擇您的計算目標時,請考慮下列因素:
優點 (優勢) | 缺點 (障礙) | |
---|---|---|
本機計算目標 | ||
遠端 ML 計算叢集 |
設定您的實驗設定
有數個選項可用來設定自動化 ML 實驗。 將 AutoMLConfig
物件具現化即可設定這些參數。 如需完整的參數清單,請參閱 AutoMLConfig 類別。
下列範例適用於分類工作。 此實驗會使用加權為主要計量的 AUC,並且會將實驗逾時設定為 30 分鐘和 2 個交叉驗證摺疊。
automl_classifier=AutoMLConfig(task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
blocked_models=['XGBoostClassifier'],
training_data=train_data,
label_column_name=label,
n_cross_validations=2)
您也可以設定預測工作,但需要進行額外設定。 如需詳細資料,請參閱設定時間序列預測的 AutoML 一文。
time_series_settings = {
'time_column_name': time_column_name,
'time_series_id_column_names': time_series_id_column_names,
'forecast_horizon': n_test_periods
}
automl_config = AutoMLConfig(
task = 'forecasting',
debug_log='automl_oj_sales_errors.log',
primary_metric='normalized_root_mean_squared_error',
experiment_timeout_minutes=20,
training_data=train_data,
label_column_name=label,
n_cross_validations=5,
path=project_folder,
verbosity=logging.INFO,
**time_series_settings
)
支援的模型
在自動化和微調程序進行期間,自動化機器學習會嘗試使用不同的模型和演算法。 身為使用者,您不需要指定演算法。
有三個不同的 task
參數值會決定要套用的演算法 (或模型) 清單。 請使用 allowed_models
或 blocked_models
參數,透過要包含或排除的可用模型進一步修改反覆項目。
下表摘要說明依工作類型支援的模型。
注意
如果您想要將自動化 ML 建立的模型匯出至 ONNX 模型,只有以 * (星號) 表示的演算法才能轉換為 ONNX 格式。 深入了解將模型轉換為 ONNX。
另請注意,ONNX 目前僅支援分類和迴歸工作。
分類 | 迴歸 | 時間序列預測 |
---|---|---|
羅吉斯迴歸* | 彈性網路* | AutoARIMA |
Light GBM* | Light GBM* | Prophet |
漸層停駐提升* | 漸層停駐提升* | 彈性網路 |
決策樹* | 決策樹* | Light GBM |
K 最近鄰演算法* | K 最近鄰演算法* | 漸層停駐提升 |
線性 SVC* | LARS Lasso* | 決策樹 |
支援向量分類 (SVC)* | 隨機梯度下降 (SGD)* | Arimax |
隨機樹系* | 隨機樹系 | LARS Lasso |
極度隨機樹狀結構* | 極度隨機樹狀結構* | 隨機梯度下降 (SGD) |
Xgboost* | Xgboost* | 隨機樹系 |
平均感知分類器 | 線上梯度下降迴歸輸入變數 | Xgboost |
貝氏機率分類* | 快速線性迴歸輸入變數 | ForecastTCN |
隨機梯度下降 (SGD)* | Naive | |
線性 SVM 分類器* | SeasonalNaive | |
平均 | ||
SeasonalAverage | ||
ExponentialSmoothing |
主要計量
primary_metric
參數會決定在模型定型期間要用於最佳化的計量。 您可以選取的可用計量由您選擇的工作類型來決定。
為要最佳化的自動化 ML 選擇主要計量取決於許多因素。 建議您優先考慮選擇最能代表您商務需求的計量。 然後,再考慮該計量是否適用於您的資料集設定檔 (資料大小、範圍、類別分佈等等)。 下列各節會摘要說明根據工作類型和商務案例所建議的主要計量。
請在了解自動化機器學習結果中了解這些計量的特定定義。
分類案例的計量
與臨界值有關的計量 (例如 accuracy
、recall_score_weighted
、norm_macro_recall
和 precision_score_weighted
) 可能也無法針對下列資料集進行最佳化:小型資料集、具有極大類別扭曲 (類別不平衡) 的資料集,或在預期的計量值非常接近 0.0 或 1.0 時的資料集。 在這些情況下,AUC_weighted
會是比較好的主要計量選擇。 自動化 ML 完成後,您可以根據最適合您商務需求的計量選擇勝出的模型。
計量 | 使用案例範例 |
---|---|
accuracy |
影像分類、情感分析、客戶流失預測 |
AUC_weighted |
詐騙偵測、影像分類、異常偵測/垃圾郵件偵測 |
average_precision_score_weighted |
情感分析 |
norm_macro_recall |
流失預測 |
precision_score_weighted |
迴歸案例的計量
r2_score
、normalized_mean_absolute_error
和 normalized_root_mean_squared_error
全都會嘗試將預測誤差降至最低。 r2_score
和 normalized_root_mean_squared_error
都會將均方誤差降至最低,normalized_mean_absolute_error
則會將誤差的平均絕對值降至最低。 絕對值會將所有量級的誤差視為相同,且平方誤差對於絕對值較大的誤差會有更大的懲罰。 視較大的誤差是否應施以更大的懲罰而定,您可以選擇將平方誤差或絕對誤差最佳化。
r2_score
和 normalized_root_mean_squared_error
的主要差異在於其正規化方式與其意義。 normalized_root_mean_squared_error
是依範圍正規化的均方根誤差,可解讀為預測的平均誤差量級。 r2_score
是由資料變異數的估計值加以正規化的平均平方誤差。 這是模型可以擷取到的變異比例。
注意
r2_score
和 normalized_root_mean_squared_error
的行為模式和主要計量類似。 如果套用固定的驗證集,這兩個計量會將相同的目標 (即平均平方誤差) 最佳化,而且會由相同的模型進行最佳化。 如果只有定型集可供使用且套用了交叉驗證,則這兩個計量會稍有不同,因為 normalized_root_mean_squared_error
的正規化程式會固定為定型集的範圍,但是 r2_score
的正規化程式會隨每個摺疊而異,因為其為每個摺疊的變異數。
如果想要排名 (而不是確切值),則 spearman_correlation
會是比較好的選擇,因為其會測量實際值與預測之間的排名相互關聯。
不過,目前迴歸沒有任何主要計量可解決相對差異。 針對薪水為 $30k 的工作者和賺了 $20M 的工作者,r2_score
、normalized_mean_absolute_error
和 normalized_root_mean_squared_error
全都會將 $20k 預測誤差視為相同,前提是用於迴歸的這兩個資料點屬於相同資料集,或屬於時間序列識別碼所指定的相同時間序列。 然而事實上,$20M 的薪水只預測了 $20k 的誤差是很接近的值 (很小的 0.1% 相對差異),但 $30k 卻誤差 $20k 就不是接近的值了 (很大的 67% 相對差異)。 為了解決相對差異的問題,您可以使用可用的主要計量來為模型定型,然後選取有最佳 mean_absolute_percentage_error
或 root_mean_squared_log_error
的模型。
計量 | 使用案例範例 |
---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
價格預測 (房屋/產品/小費)、評論分數預測 |
r2_score |
飛機延誤、薪水預估、錯誤解決時間 |
normalized_mean_absolute_error |
時間序列預測案例的計量
建議與迴歸案例所提到的類似。
計量 | 使用案例範例 |
---|---|
normalized_root_mean_squared_error |
價格預測 (預測)、庫存最佳化、需求預測 |
r2_score |
價格預測 (預測)、庫存最佳化、需求預測 |
normalized_mean_absolute_error |
資料特徵化
在每個自動化 ML 實驗中,您的資料都會自動調整並標準化,以利易受不同規模的特徵所影響的特定演算法能妥善運作。 此調整和正規化稱為特徵化。 如需詳細資訊和程式碼範例,請參閱 AutoML 中的特徵化。
注意
自動化機器學習特徵化步驟 (功能標準化、處理遺漏的資料、將文字轉換為數值等等) 會成為基礎模型的一部分。 使用模型進行預測時,定型期間所套用的相同特徵化步驟會自動套用至您的輸入資料。
在 AutoMLConfig
物件中設定實驗時,可啟用/停用 featurization
設定。 下表顯示 AutoMLConfig 物件中已接受的特徵化設定。
特徵化設定 | 描述 |
---|---|
"featurization": 'auto' |
指出在前置處理過程中,會自動執行資料護欄和特徵化步驟。 預設設定。 |
"featurization": 'off' |
指出不應自動執行特徵化步驟。 |
"featurization": 'FeaturizationConfig' |
指出應使用自訂的特徵化步驟。 了解如何自訂特徵化。 |
集團設定
依預設會啟用集團模型,並在 AutoML 執行中顯示為最後一回合的反覆運算。 目前支援 VotingEnsemble 和 StackEnsemble。
投票會實作使用加權平均值的軟投票。 堆疊則會使用兩層實作來實作,其中,第一層模型與投票集團相同,第二層模型則用來尋找第一層中的最佳模型組合。
如果您使用 ONNX 模型,或已啟用模型說明能力,則會停用堆疊,而僅使用投票。
您可以使用 enable_voting_ensemble
和 enable_stack_ensemble
布林值參數來停用集團定型。
automl_classifier = AutoMLConfig(
task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
training_data=data_train,
label_column_name=label,
n_cross_validations=5,
enable_voting_ensemble=False,
enable_stack_ensemble=False
)
若要改變預設集團行為,有多個預設引數可提供作為 AutoMLConfig
物件中的 kwargs
。
重要
下列參數不是 AutoMLConfig 類別的明確參數。
ensemble_download_models_timeout_sec
:在 VotingEnsemble 和 StackEnsemble 模型產生期間,會從先前的子執行中下載多個適合的模型。 如果發生AutoMLEnsembleException: Could not find any models for running ensembling
錯誤,您可能需要提供更多時間來下載模型。 以平行方式下載這些模型的預設值為 300 秒,且沒有最大逾時限制。 如果需要更多時間,請將此參數設定為高於 300 秒的值。注意
在到達逾時後,如果有已下載的模型,則會以已下載的所有模型繼續進行集團化。 需要下載的所有模型不一定要在該逾時內完成。 下列參數僅適用於 StackEnsemble 模型:
stack_meta_learner_type
:中繼學習模組是以個別異質模型的輸出定型的模型。 分類工作的預設中繼學習模組是LogisticRegression
(如果已啟用交叉驗證,則為LogisticRegressionCV
),迴歸/預測工作的預設模組為ElasticNet
(如果已啟用交叉驗證,則為ElasticNetCV
)。 這個參數可以是下列其中一個字串:LogisticRegression
、LogisticRegressionCV
、LightGBMClassifier
、ElasticNet
、ElasticNetCV
、LightGBMRegressor
或LinearRegression
。stack_meta_learner_train_percentage
:指定要保留用來定型中繼學習模組的定型集比例 (在選擇定型和定型的驗證類型時)。 預設值為0.2
。stack_meta_learner_kwargs
:要傳至中繼學習模組之初始設定式的選擇性參數。 這些參數和參數類型會與對應模型建構函式中的參數和參數類型相對映,且會轉送至模型建構函式。
下列程式碼顯示在 AutoMLConfig
物件中指定自訂集團行為的範例。
ensemble_settings = {
"ensemble_download_models_timeout_sec": 600
"stack_meta_learner_type": "LogisticRegressionCV",
"stack_meta_learner_train_percentage": 0.3,
"stack_meta_learner_kwargs": {
"refit": True,
"fit_intercept": False,
"class_weight": "balanced",
"multi_class": "auto",
"n_jobs": -1
}
}
automl_classifier = AutoMLConfig(
task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
training_data=train_data,
label_column_name=label,
n_cross_validations=5,
**ensemble_settings
)
允出準則
有幾個選項可供您在 AutoMLConfig 中定義以結束您的實驗。
準則 | description |
---|---|
無準則 | 若未定義任何結束參數,實驗會繼續進行,直到主要計量沒有進一步的進度為止。 |
在一段時間後 | 在設定中使用 experiment_timeout_minutes ,以定義實驗應該繼續執行的時間長度 (以分鐘為單位)。 為避免發生實驗逾時失敗,至少要 15 分鐘,或者,如果您的資料列乘資料行大小超過 1000 萬,則至少要 60分鐘。 |
已達到分數 | 使用 experiment_exit_score 會在達到指定的主要計量分數後完成實驗。 |
執行實驗
警告
如果您以相同設定和主要計量多次執行實驗,您可能會發現每個實驗的最終計量分數和產生的模型會有變化。 自動化 ML 採用的演算法具有固有的隨機性,可能會導致實驗和建議模型的最終計量分數所產生的模型輸出有些微變化,例如精確度。 您可能也會發現結果有相同的模型名稱,卻使用不同的超參數。
針對自動化 ML,您可以建立 Experiment
物件,作為 Workspace
中用來執行實驗的具名物件。
from azureml.core.experiment import Experiment
ws = Workspace.from_config()
# Choose a name for the experiment and specify the project folder.
experiment_name = 'Tutorial-automl'
project_folder = './sample_projects/automl-classification'
experiment = Experiment(ws, experiment_name)
提交實驗以執行與產生模型。 將 AutoMLConfig
傳至 submit
方法以產生模型。
run = experiment.submit(automl_config, show_output=True)
注意
相依性會先安裝在新的機器上。 最多可能需要 10 分鐘才會顯示輸出。
將 show_output
設定為 True
,會使輸出顯示在主控台上。
叢集上有多個子執行
您可以在已執行其他實驗的叢集上,執行自動化 ML 實驗子執行。 不過,時機取決於叢集擁有的節點數目,以及這些節點是否可用來執行不同實驗。
叢集中的每個節點都會作為個別的虛擬機器 (VM),並可完成單一定型執行;對自動化 ML 來說,這代表子執行。 如果所有節點都處於忙碌狀態,則會將新實驗排入佇列。 但如果有可用節點,新實驗就會在可用節點/VM 中平行執行自動化 ML 子執行。
為了協助管理子執行及其可以執行的時間,建議您為每個實驗建立專用叢集,並讓實驗的 max_concurrent_iterations
數目符合叢集中的節點數目。 如此一來,您就可以同時使用叢集的所有節點,以及您想要的並行子執行/反覆項目數目。
請在 AutoMLConfig
物件中設定 max_concurrent_iterations
。 如果未設定,則每個實驗預設只能允許一個並行的子執行/反覆項目。
如果是計算執行個體,則可將 max_concurrent_iterations
設定為與計算執行個體 VM 上的核心數目相同的值。
探索模型和計量
自動化 ML 提供了一些選項供您監視及評估定型結果。
如果您使用筆記本,您可以在小工具中或以內嵌方式檢視定型結果。 如需詳細資訊,請參閱監視自動化機器學習執行。
如需每次執行所提供效能圖表與計量的定義和範例,請參閱評估自動化機器學習實驗結果。
若要取得特徵化摘要,以及了解已新增至特定模型的特徵,請參閱特徵化透明度。
您可以使用自訂程式碼解決方案 print_model()
來檢視超參數、調整和正規化技巧,以及套用至特定自動化 ML 的演算法。
提示
自動化 ML 也可讓您檢視為自動 ML 定型的模型產生的模型定型程式碼。 這項功能處於公開預覽狀態,隨時都可能變更。
監視自動化機器學習執行
針對自動化 ML 執行,若要存取上一次執行的圖表,請以適當的實驗名稱取代 <<experiment_name>>
:
from azureml.widgets import RunDetails
from azureml.core.run import Run
experiment = Experiment (workspace, <<experiment_name>>)
run_id = 'autoML_my_runID' #replace with run_ID
run = Run(experiment, run_id)
RunDetails(run).show()
測試模型 (預覽版)
重要
使用測試資料集來測試模型以評估自動化 ML 所產生的模型是預覽功能。 此功能是實驗性預覽功能,而且可能隨時變更。
警告
下列自動化 ML 案例無法使用此功能
將 test_data
或 test_size
參數傳遞至 AutoMLConfig
會自動觸發遠端測試回合,此執行會使用所提供的測試資料,在實驗完成時評估自動化 ML 所建議的最佳模型。 在判斷出最佳模型後,此遠端測試回合會於實驗結束時完成。 請了解如何將測試資料傳遞至 AutoMLConfig
。
取得測試作業結果
您可以透過 Azure Machine Learning 工作室或下列程式碼,從遠端測試作業取得預測和計量。
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}")
# Get test predictions as a Dataset
test_run_details = test_run.get_details()
dataset_id = test_run_details['outputDatasets'][0]['identifier']['savedId']
test_run_predictions = Dataset.get_by_id(workspace, dataset_id)
predictions_df = test_run_predictions.to_pandas_dataframe()
# Alternatively, the test predictions can be retrieved via the run outputs.
test_run.download_file("predictions/predictions.csv")
predictions_df = pd.read_csv("predictions.csv")
模型測試工作會產生 predictions.csv 檔案,並儲存在與工作區一起建立的預設資料存放區。 具有相同訂用帳戶的所有使用者都可以看到此資料存放區。 如果測試作業所使用或所建立的任何資訊都必需保密,則不建議使用測試作業。
測試現有的自動化 ML 模型
若要測試已建立的其他現有自動化 ML 模型、最佳作業或子作業,請在主要 AutoML 執行完成後,使用 ModelProxy()
來測試模型。 ModelProxy()
已傳回預測和計量,不需要進一步處理即可擷取輸出。
注意
ModelProxy 是實驗性預覽類別,可能會隨時變更。
下列程式碼示範如何使用 ModelProxy.test() 方法從任何執行來測試模型。 在 test() 方法中,您可以選擇使用 include_predictions_only
參數來指定是否只要查看測試回合的預測。
from azureml.train.automl.model_proxy import ModelProxy
model_proxy = ModelProxy(child_run=my_run, compute_target=cpu_cluster)
predictions, metrics = model_proxy.test(test_data, include_predictions_only= True
)
註冊和部署模型
在測試模型並確認您想要在生產環境中使用之後,您可以註冊該模型以供稍後使用和
若要從自動化 ML 執行來註冊模型,請使用 register_model()
方法。
best_run = run.get_best_child()
print(fitted_model.steps)
model_name = best_run.properties['model_name']
description = 'AutoML forecast example'
tags = None
model = run.register_model(model_name = model_name,
description = description,
tags = tags)
如需有關如何建立部署設定以及將已註冊的模型部署至 Web 服務的詳細資訊,請參閱部署模型的方式和位置。
提示
針對已註冊的模型,可透過 Azure Machine Learning 工作室來進行一鍵式部署。 請了解如何從工作室部署已註冊的模型。
模型可解釋性
模型可解釋性可讓您了解模型進行預測的原因,以及基礎特徵重要性的值。 SDK 包含多種套件,可讓您在定型和推斷期間,對本機和已部署的模型啟用模型可解釋性特徵。
請了解如何在自動化 ML 實驗內特別啟用可解釋性功能。
如需如何在自動化機器學習以外的其他 SDK 區域中啟用模型說明和特徵重要性的一般資訊,請參閱概念一文中有關於可解釋性的部分。
注意
說明用戶端目前不支援 ForecastTCN 模型。 如果系統傳回此模型是最佳模型,則此模型不會傳回說明儀表板,而且不支援隨選說明執行。
下一步
深入了解模型部署的方式和位置。
深入了解如何使用自動化機器學習定型迴歸模型。