

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

# LightGBM 超參數
<a name="lightgbm-hyperparameters"></a>

下表包含 Amazon SageMaker AI LightGBM 演算法所需或最常用的超參數子集。使用者設定參數，並用來協助從資料預估模型參數。SageMaker AI LightGBM 演算法是開放原始碼 [LightGBM](https://github.com/microsoft/LightGBM) 套件的實作。

**注意**  
預設超參數是根據[LightGBM 範例筆記本](lightgbm.md#lightgbm-sample-notebooks)中的範例資料集。

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


| 參數名稱 | Description | 
| --- | --- | 
| num\$1boost\$1round |  提升反覆運算的數量上限。**注意：**在內部，LightGBM 會針對多類別分類問題建構 `num_class * num_boost_round` 樹狀結構。 有效值：整數，範圍：正整數。 預設值：`100`。  | 
| early\$1stopping\$1rounds |  如果一個驗證資料點的一個指標在上`early_stopping_rounds`輪中沒有改善，則訓練將停止。如果`early_stopping_rounds`小於或等於零，則會忽略此超參數。 有效值：整數。 預設值：`10`。  | 
| metric |  驗證資料的評估指標。如果設`metric`為預設`"auto"`值，則演算法會根據分類問題類型自動選擇評估量度： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/lightgbm-hyperparameters.html) 有效值：字串，下列任何一項：(`"auto"`、`"rmse"`、`"l1"`、`"l2"`、`"huber"`、`"fair"`、`"binary_logloss"`、`"binary_error"`、`"auc"`、`"average_precision"`、`"multi_logloss"`、`"multi_error"`、`"auc_mu"` 或 `"cross_entropy"`)。 預設值：`"auto"`。  | 
| learning\$1rate |  檢視每批訓練範例後，模型權重的更新率。 有效值：浮點數、範圍：(`0.0`, `1.0`)。 預設值：`0.1`。  | 
| num\$1leaves |  一個樹狀結構中的的最大分葉數量。 有效值：整數，範圍：(`1`、`131072`)。 預設值：`64`。  | 
| feature\$1fraction |  要在每個反覆運算 (樹狀結構) 上選取的功能子集。必須小於 1.0。 有效值：浮動、範圍：(`0.0`, `1.0`)。 預設值：`0.9`。  | 
| bagging\$1fraction |  功能的子集類似於 `feature_fraction`，但 `bagging_fraction` 會隨機選取部分資料而不重新取樣。 有效值：浮動、範圍：(`0.0`, `1.0`]。 預設值：`0.9`。  | 
| bagging\$1freq |  執行裝袋的頻率。在每次 `bagging_freq` 反覆運算中，LightGBM 會隨機選取用於下一次 `bagging_freq` 反覆運算的資料百分比。此百分比由 `bagging_fraction` 超參數決定。如果 `bagging_freq` 為零，則將停用裝袋。 有效值：整數，範圍：非負整數。 預設值：`1`。  | 
| max\$1depth |  樹狀結構模型的最大深度。當資料量很小時，這用於處理過度擬合。如果 `max_depth` 小於或等於零，則表示最大深度沒有限制。 有效值：整數。 預設值：`6`。  | 
| min\$1data\$1in\$1leaf |  一個分葉中的最小資料量。可用於處理過度擬合。 有效值：整數，範圍：非負整數。 預設值：`3`。  | 
| max\$1delta\$1step |  用於限制樹狀結構分葉的最大輸出。如果 `max_delta_step` 小於或等於 0，則無限制條件。分葉的最終最大輸出是 `learning_rate * max_delta_step`。 有效值：浮點數。 預設值：`0.0`。  | 
| lambda\$1l1 |  L1 正規化。 有效值：浮點數，範圍：非負浮點數。 預設值：`0.0`。  | 
| lambda\$1l2 |  L2 正規化。 有效值：浮點數，範圍：非負浮點數。 預設值：`0.0`。  | 
| boosting |  提升類型 有效值：字串，下列任一項：(`"gbdt"`、`"rf"`、`"dart"` 或 `"goss"`)。 預設值：`"gbdt"`。  | 
| min\$1gain\$1to\$1split |  執行分割的最小增益。可用於加速訓練。 有效值：整數，範圍：非負浮點數。 預設值：`0.0`。  | 
| scale\$1pos\$1weight |  具有正類別標籤的權重。僅適用於二進制分類任務。 如果將 `is_unbalance` 設定為 `"True"`，則無法使用 `scale_pos_weight`。 有效值：浮點數，範圍：正浮點數。 預設值：`1.0`。  | 
| tree\$1learner |  樹狀結構學習程式類型。 有效值：字串，下列任一項：(`"serial"`、`"feature"`、`"data"` 或 `"voting"`)。 預設值：`"serial"`。  | 
| feature\$1fraction\$1bynode |  在每個樹狀結構節點上選取隨機功能的子集。例如，如果 `feature_fraction_bynode` 為 `0.8`，則會選取 80% 的功能。可用於處理過度擬合。 有效值：整數，範圍：(`0.0`、`1.0`]。 預設值：`1.0`。  | 
| is\$1unbalance |  如果訓練資料不平衡，則設定為 `"True"`。僅適用於二進制分類任務。`is_unbalance` 無法與 `scale_pos_weight` 搭配使用。 有效值：字串，可以是：(`"True"` 或 `"False"`)。 預設值：`"False"`。  | 
| max\$1bin |  用於儲存貯體功能值的最大 Bin 數量。少量的 Bin 數量可能會降低訓練準確性，但可能會增加一般效能。可用於處理過度擬合。 有效值：整數，範圍：(1、∞)。 預設值：`255`。  | 
| tweedie\$1variance\$1power |  控制 Tweedie 發佈的變異數。將其設定為更接近 `2.0`，以轉為伽瑪分布。將其設定為更接近 `1.0`，以轉為卜瓦松分布。僅用於迴歸任務。 有效值：浮動、範圍：[`1.0`, `2.0`)。 預設值：`1.5`。  | 
| num\$1threads |  用於執行 LightGBM 的平行執行緒數量。值 0 表示 OpenMP 中預設的執行緒數量。 有效值：整數，範圍：非負整數。 預設值：`0`。  | 
| verbosity |  列印訊息的詳細程度。如果 `verbosity` 小於 `0`，則列印訊息僅顯示嚴重錯誤。如果將 `verbosity` 設定為 `0`，則列印訊息會包含錯誤與警告。如果 `verbosity` 是 `1`，則列印訊息會顯示詳細資訊。`verbosity` 大於 `1` 顯示列印訊息中最多的資訊，可用於偵錯。 有效值：整數。 預設值：`1`。  | 