共用方式為


訓練視覺效果 (預覽)

超參數試用或 AutoML 試用會搜尋機器學習模型的最佳參數。 每個試用都包含多個執行,其中每個執行都會評估特定的參數組合。 使用者可以在 Fabric 中使用 ML 實驗項目來監視這些執行。

flaml.visualization 模組提供函數來繪製及比較 FLAML 中的執行。 使用者可以使用 Plotly 與其 AutoML 實驗繪圖互動。 若要使用這些函數,使用者必須輸入其最佳化的 flaml.AutoMLflaml.tune.tune.ExperimentAnalysis 物件。

本文將教導您如何使用 flaml.visualization 模組來分析及探索 AutoML 試用結果。 您也可以針對超參數試用遵循相同的步驟。

重要

此功能處於預覽

建立 AutoML 試用

AutoML 提供一套自動化程序,可識別資料集的最佳機器學習管線,讓整個模型化程序更加簡單且更精確。 本質上,它省去了手動調整不同模型和超參數的麻煩。

在下列程式碼資料格中,我們將:

  1. 載入 Iris 資料集。
  2. 將資料分割成訓練集和測試集。
  3. 啟動 AutoML 試用以適應訓練資料。
  4. 使用 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 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()

以下是結果圖:

超參數重要性繪圖的圖表。