LightGBM 超參數 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

LightGBM 超參數

下表包含 Amazon SageMaker LightGBM 演算法所需的或最常用的超參數子集。使用者設定參數,並用來協助從資料預估模型參數。 SageMaker LightGBM 演算法是開放原始碼 LightGBM 套件的實作。

注意

預設超參數是根據簡易GBM範例筆記本中的範例資料集。

根據預設, SageMaker LightGBM 演算法會根據分類問題的類型自動選擇評估指標和目標函數。LightGBM 演算法會根據您資料中的標籤數量來偵測分類問題的類型。對於迴歸問題,評估指標為均方根誤差,而目標函式為 L2 損失。對於二進制分類問題,評估指標和目標函式皆為是二元交叉熵。對於多類別分類問題,評估指標為多類別交叉熵而目標函式為 softmax。您可以使用 metric 超參數來變更預設評估指標。如需 LightGBM 超參數的詳細資訊,包括描述、有效值和預設值,請參閱下表。

參數名稱 描述
num_boost_round

提升反覆運算的數量上限。注意:在內部,LightGBM 會針對多類別分類問題建構num_class * num_boost_round樹狀目錄。

有效值:整數,範圍:正整數。

預設值:100

early_stopping_rounds

如果一個驗證資料點的一個指標在上early_stopping_rounds輪中沒有改善,則訓練將停止。如果early_stopping_rounds小於或等於零,則會忽略此超參數。

有效值:整數。

預設值:10

metric

驗證資料的評估指標。如果設metric為預設"auto"值,則演算法會根據分類問題類型自動選擇評估量度:

  • 適用於迴歸的 rmse

  • 適用於二進制分類的 binary_logloss

  • 適用於多類別分類的 multi_logloss

有效值:字串,下列任何一項:("auto""rmse""l1""l2""huber""fair""binary_logloss""binary_error""auc""average_precision""multi_logloss""multi_error""auc_mu""cross_entropy")。

預設值:"auto"

learning_rate

檢視每批訓練範例後,模型權重的更新率。

有效值:浮點數、範圍:(0.0, 1.0)。

預設值:0.1

num_leaves

一個樹狀結構中的的最大分葉數量。

有效值:整數,範圍:(1131072)。

預設值:64

feature_fraction

要在每個反覆運算 (樹狀結構) 上選取的功能子集。必須小於 1.0。

有效值:浮點數、範圍:(0.0, 1.0)。

預設值:0.9

bagging_fraction

功能的子集類似於 feature_fraction,但 bagging_fraction 會隨機選取部分資料而不重新取樣。

有效值:浮點數、範圍:(0.0, 1.0]。

預設值:0.9

bagging_freq

執行裝袋的頻率。每次迭代時,Light bagging_freq GBM 都會隨機選取要用於下次bagging_freq迭代的資料百分比。此百分比由 bagging_fraction 超參數決定。如果 bagging_freq 為零,則將停用裝袋。

有效值:整數,範圍:非負整數。

預設值:1

max_depth

樹狀結構模型的最大深度。當資料量很小時,這用於處理過度擬合。如果 max_depth 小於或等於零,則表示最大深度沒有限制。

有效值:整數。

預設值:6

min_data_in_leaf

一個分葉中的最小資料量。可用於處理過度擬合。

有效值:整數,範圍:非負整數。

預設值:3

max_delta_step

用於限制樹狀結構分葉的最大輸出。如果 max_delta_step 小於或等於 0,則無限制條件。分葉的最終最大輸出是 learning_rate * max_delta_step

有效值:浮點數。

預設值:0.0

lambda_l1

L1 正規化。

有效值:浮點數,範圍:非負浮點數。

預設值:0.0

lambda_l2

L2 正規化。

有效值:浮點數,範圍:非負浮點數。

預設值:0.0

boosting

提升類型

有效值:字串,下列任一項:("gbdt""rf""dart""goss")。

預設值:"gbdt"

min_gain_to_split

執行分割的最小增益。可用於加速訓練。

有效值:整數,範圍:非負浮點數。

預設值:0.0

scale_pos_weight

具有正類別標籤的權重。僅適用於二進制分類任務。 如果將 is_unbalance 設定為 "True",則無法使用 scale_pos_weight

有效值:浮點數,範圍:正浮點數。

預設值:1.0

tree_learner

樹狀結構學習程式類型。

有效值:字串,下列任一項:("serial""feature""data""voting")。

預設值:"serial"

feature_fraction_bynode

在每個樹狀結構節點上選取隨機功能的子集。例如,如果 feature_fraction_bynode0.8,則會選取 80% 的功能。可用於處理過度擬合。

有效值:整數,範圍:(0.01.0]。

預設值:1.0

is_unbalance

如果訓練資料不平衡,則設定為 "True"。僅適用於二進制分類任務。is_unbalance 無法與 scale_pos_weight 搭配使用。

有效值:字串,可以是:("True""False")。

預設值:"False"

max_bin

用於儲存貯體功能值的最大 Bin 數量。少量的 Bin 數量可能會降低訓練準確性,但可能會增加一般效能。可用於處理過度擬合。

有效值:整數,範圍:(1、∞)。

預設值:255

tweedie_variance_power

控制 Tweedie 發佈的變異數。將其設定為更接近 2.0,以轉為伽瑪分布。將其設定為更接近 1.0,以轉為卜瓦松分布。僅用於迴歸任務。

有效值:浮動、範圍:[1.0, 2.0)。

預設值:1.5

num_threads

用於執行 Light 的平行執行緒數目GBM。值 0 表示 OpenMP 中預設的執行緒數量。

有效值:整數,範圍:非負整數。

預設值:0

verbosity

列印訊息的詳細程度。如果 verbosity 小於 0,則列印訊息僅顯示嚴重錯誤。如果將 verbosity 設定為 0,則列印訊息會包含錯誤與警告。如果 verbosity1,則列印訊息會顯示詳細資訊。verbosity 大於 1 顯示列印訊息中最多的資訊,可用於偵錯。

有效值:整數。

預設值:1