定型視覺效果 (預覽)
超參數試用版或 AutoML 試用版會搜尋機器學習模型的最佳參數。 每個試用版都包含多個回合,其中每個回合都會評估特定的參數組合。 用戶可以在 Fabric 中使用 ML 實驗項目來監視這些執行。
模組 flaml.visualization
提供函式來繪製及比較 FLAML 中的執行。 用戶可以使用 Plotly 與其 AutoML 實驗繪圖互動。 若要使用這些函式,用戶必須輸入其優化 flaml.AutoML
或 flaml.tune.tune.ExperimentAnalysis
物件。
本文將教導您如何使用 flaml.visualization
模組來分析及探索 AutoML 試用版結果。 您也可以針對超參數試用版遵循相同的步驟。
建立 AutoML 試用版
AutoML 提供一套自動化程式,可識別數據集的最佳機器學習管線,讓整個模型化程式更加簡單且更精確。 基本上,它可節省手動調整不同模型和超參數的問題。
在下列程式代碼數據格中,我們將:
- 載入鳶尾花數據集。
- 將數據分割成定型集和測試集。
- 起始 AutoML 試用版以符合訓練數據。
- 使用的
flaml.visualization
視覺效果探索 AutoML 試用版的結果。
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from flaml import AutoML
# Load the Iris data and split it into train and test sets
x, y = load_iris(return_X_y=True, as_frame=True)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7654321)
# Create an AutoML instance and set the parameters
automl = AutoML()
automl_settings = {
"time_budget": 10, # Time limit in seconds
"task": "classification", # Type of machine learning task
"log_file_name": "aml_iris.log", # Name of the log file
"metric": "accuracy", # Evaluation metric
"log_type": "all", # Level of logging
}
# Fit the AutoML instance on the training data
automl.fit(X_train=x_train, y_train=y_train, **automl_settings)
將實驗結果可視化
執行 AutoML 試用版之後,您必須將結果可視化,以分析模型的執行程度,以及其運作方式。 在本文件的這個部分中,我們會說明如何針對此目的使用 FLAML 連結庫中的內建公用程式。
匯入視覺效果模組
若要存取這些視覺效果公用程式,我們執行下列 import 命令:
import flaml.visualization as fviz
優化歷程記錄
優化歷程記錄繪圖通常具有 x 軸上的試用版/反覆項目數目,以及 y 軸上的效能計量(例如精確度、RMSE 等)。 當試用版數目增加時,您會看到一個線條或散佈圖,指出每個試用版的效能。
fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()
以下是產生的繪圖:
特徵重要度
特徵重要性繪圖是功能強大的視覺效果工具,可讓您瞭解不同輸入特徵在判斷模型預測方面的重要性。
fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()
以下是產生的繪圖:
平行座標圖
平行座標圖是一種可視化工具,可藉由繪製對應至變數或超參數的多個垂直線(軸)來表示多維度數據,而數據點繪製為這些座標軸上的連接線。 在 AutoML 或微調實驗的內容中,它有助於可視化和分析不同超參數組合的效能。 藉由追蹤高效能組態的路徑,可以辨別超參數選項及其互動中的模式或趨勢。 此繪圖有助於瞭解哪些組合會導致最佳效能、找出潛在區域以進行進一步探索,以及識別不同超參數之間的任何取捨。
此公用程式會採用下列其他自變數:
learner
:指定您想要在實驗中學習的學習者。 此參數僅適用於 AutoML 實驗結果。 藉由讓這個空白,系統會在整個實驗中選擇最佳學習者。params
:指定要顯示的超參數清單。 藉由將此保留空白,系統會顯示所有可用的超參數。
fig = fviz.plot_parallel_coordinate(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "parallel_coordinate", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()
以下是產生的繪圖:
輪廓圖
輪廓圖可視化兩個維度中的三維數據,其中 x 和 y 軸代表兩個超參數,而輪廓線或填滿輪廓描繪效能計量層級(例如精確度或損失)。 在 AutoML 或微調實驗的內容中,輪廓圖有助於瞭解兩個超參數之間的關聯性,以及它們對模型效能的結合效果。
藉由檢查輪廓線的密度和定位,可以識別效能優化處超參數空間的區域、找出超參數之間的潛在取捨,並深入瞭解其互動。 此視覺效果可協助精簡搜尋空間和微調程式。
此公用程式也會採用下列自變數:
learner
:指定您想要在實驗中學習的學習者。 此參數僅適用於 AutoML 實驗結果。 藉由讓這個空白,系統會在整個實驗中選擇最佳學習者。params
:指定要顯示的超參數清單。 藉由將此保留空白,系統會顯示所有可用的超參數。
fig = fviz.plot_contour(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "contour", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()
以下是產生的繪圖:
經驗分配函數
經驗分佈函數 (EDF) 繪圖,通常可視化為步驟函式,代表數據點小於或等於特定值的累計機率。 在 AutoML 或微調實驗內,可以使用 EDF 繪圖,以可視化方式將模型效能分佈到不同的超參數位態。
藉由觀察各點曲線的陡峭度或平面度,可以分別瞭解良好或不良模型效能的集中度。 此視覺效果提供微調程序整體效力的深入解析,強調大部分嘗試的組態是否產生令人滿意的結果,或只有少數組態脫穎而出。
注意
針對 AutoML 實驗,將在定型期間套用多個模型。 每個學習者的試用都會以優化系列表示。 針對超參數微調實驗,只會評估單一學習模組。 不過,您可以提供額外的微調實驗,以查看每個學習者的趨勢。
fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()
以下是產生的繪圖:
時間軸繪圖
時間軸繪圖,通常以甘特圖或長條序列表示,可視化一段時間內工作的開始、持續時間和完成。 在 AutoML 或微調實驗的內容中,時間軸繪圖可以展示各種模型評估及其個別持續時間的進度,並針對時間繪製。 藉由觀察此繪圖,使用者可以掌握搜尋程式的效率、找出任何潛在的瓶頸或閑置期間,以及瞭解不同超參數評估的時態動態。
fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()
以下是產生的繪圖:
配量圖
將參數關聯性繪製為研究中的配量圖。
此公用程式也會採用下列自變數:
learner
:指定您想要在實驗中學習的學習者。 此參數僅適用於 AutoML 實驗結果。 藉由讓這個空白,系統會在整個實驗中選擇最佳學習者。params
:指定要顯示的超參數清單。 藉由將此保留空白,系統會顯示所有可用的超參數。
fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()
以下是產生的繪圖:
超參數重要性
超參數重要性繪圖會根據其在 AutoML 或微調實驗中模型效能的影響,以可視化方式排名超參數。 通常顯示為條形圖,它會量化每個超參數對目標計量的影響。 藉由檢查此繪圖,從業者可以辨別哪些超參數在判斷模型結果以及哪些超參數具有最小效果的關鍵。
此公用程式也會採用下列自變數:
learner
:指定您想要在實驗中學習的學習者。 此參數僅適用於 AutoML 實驗結果。 藉由讓這個空白,系統會在整個實驗中選擇最佳學習者。params
:指定要顯示的超參數清單。 藉由將此保留空白,系統會顯示所有可用的超參數。
fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()
以下是產生的繪圖:
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應