

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

# XGBoost 超參數
<a name="xgboost_hyperparameters"></a>

下表包含 Amazon SageMaker AI XGBoost 演算法所需或最常用的超參數子集。這些是由使用者設定的參數，用來協助從資料預估模型參數。首先列出的是必須設定的超參數，依字母順序排列。接著列出的是選用的超參數，也是依字母順序排列。SageMaker AI XGBoost 演算法是開放原始碼 DMLC XGBoost 套件的實作。如需可針對此版本 XGBoost 設定的一組完整超參數詳細資訊，請參閱 [XGBoost 參數](https://xgboost.readthedocs.io/en/release_1.2.0/)。


| 參數名稱 | 說明 | 
| --- | --- | 
| num\_class | 類別數。<br />若 `objective` 設為 *multi:softmax* 或 *multi:softprob* 則為**必要**。<br />有效值：整數。 | 
| num\_round | 執行訓練的捨入數。<br />**必要**<br />有效值：整數。 | 
| alpha | 權重的 L1 正規化詞彙。增加此值可讓模型更為保守。<br />**選用**<br />有效值：浮點數。<br />預設值：0 | 
| base\_score | 所有執行個體、全域偏差的初始預測分數。<br />**選用**<br />有效值：浮點數。<br />預設值：0.5 | 
| booster | 要使用哪些提升工具。`gbtree` 和 `dart` 值使用樹狀模型，而 `gblinear` 使用線性函式。<br />**選用**<br />有效值：字串。`"gbtree"`、`"gblinear"` 或 `"dart"` 其中之一。<br />預設值：`"gbtree"` | 
| colsample\_bylevel | 每個層級中的每個分割之欄次取樣率。<br />**選用**<br />有效值：浮點數。範圍：[0,1]。<br />預設值：1 | 
| colsample\_bynode | 每個節點中資料欄的次取樣率。<br />**選用**<br />有效值：浮點數。範圍：(0,1]。<br />預設值：1 | 
| colsample\_bytree | 建構每棵樹時的欄次取樣率。<br />**選用**<br />有效值：浮點數。範圍：[0,1]。<br />預設值：1 | 
| csv\_weights | 啟用此標記時，XGBoost 會採用訓練資料的第二個欄 (標籤後面的欄) 做為執行個體權重，區隔 csv 輸入的執行個體重要性。<br />**選用**<br />有效值：0 或 1<br />預設值：0 | 
| deterministic\_histogram | 啟用此標記時，XGBoost 會決定性地在 GPU 上建立直方圖。僅於 `tree_method` 設為 `gpu_hist` 時才使用。<br />如需有效輸入的完整清單，請參閱 [XGBoost 參數](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst)。<br />**選用**<br />有效值：字串。範圍：`"true"` 或 `"false"`。<br />預設值：`"true"` | 
| early\_stopping\_rounds | 模型會一直訓練到驗證分數停止上升為止。驗證錯誤需至少以每 `early_stopping_rounds` 的速率降低才可繼續訓練。SageMaker AI 託管使用最佳模型進行推論。<br />**選用**<br />有效值：整數。<br />預設值：- | 
| eta | 用於更新以避免過度擬合的步驟大小收縮。在每個提升步驟後，您可以直接取得新功能的權重。`eta` 參數會縮減功能權重，讓提升程序更保守。<br />**選用**<br />有效值：浮點數。範圍：[0,1]。<br />預設值：0.3 | 
| eval\_metric | 驗證資料的評估指標。預設指標是根據目標指派：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/xgboost_hyperparameters.html)<br />如需有效輸入清單，請參閱 [XGBoost 學習任務參數](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)。<br />**選用**<br />有效值：字串。<br />預設值：根據目標預設。 | 
| gamma | 進一步在樹上的葉片節點分區所需的最低遺失縮減量。演算法越大就越保守。<br />**選用**<br />有效值：浮點數。範圍：[0,∞)。<br />預設值：0 | 
| grow\_policy | 控制新增節點到樹的方式。目前只有 `tree_method` 設為 `hist` 時才受支援。<br />**選用**<br />有效值：字串。`"depthwise"` 或 `"lossguide"`。<br />預設值：`"depthwise"` | 
| interaction\_constraints | 指定允許互動的變數群組。<br />**選用**<br />有效值：嵌套的整數清單。每個整數表示一個特徵，每個嵌套清單包含允許互動的特徵，例如 [[1,2]、[3,4,5]]。<br />預設值：NONE | 
| lambda | 權重的 L2 正規化詞彙。增加此值可讓模型更為保守。<br />**選用**<br />有效值：浮點數。<br />預設值：1 | 
| lambda\_bias | 偏差的 L2 正規化詞彙。<br />**選用**<br />有效值：浮點數。範圍：[0.0, 1.0]。<br />預設值：0 | 
| max\_bin | 最大數量的分散式資料匣，以儲存持續功能。僅於 `tree_method` 設為 `hist` 時才使用。<br />**選用**<br />有效值：整數。<br />預設值：256 | 
| max\_delta\_step | 每個樹的權重估值允許使用最高差量步驟。使用正整數時，有助於讓更新更為保守。偏好選項是在邏輯回歸中使用。設定為 1-10，以協助控制更新。<br />**選用**<br />有效值：整數。範圍：[0,∞)。<br />預設值：0 | 
| max\_depth | 最大樹深度。增加此值可讓模型更為複雜也更有可能過度擬合。0 表示無限制。當 `grow_policy`=`depth-wise` 時便需要限制。<br />**選用**<br />有效值：整數。範圍：[0,∞)<br />預設值：6 | 
| max\_leaves | 要新增的最大節點數量。只有 `grow_policy` 設為 `lossguide` 時才相關。<br />**選用**<br />有效值：整數。<br />預設值：0 | 
| min\_child\_weight | 子系中需要執行個體權重的最低總和 (hessian)。如果葉片節點中的樹狀分區步驟的執行個體權重總和少於 `min_child_weight`，建置程序將提供進一步的分區。在線性回歸模型中，這就是對應各節點中所需的最低執行個體數量。演算法越大就越保守。<br />**選用**<br />有效值：浮點數。範圍：[0,∞)。<br />預設值：1 | 
| monotone\_constraints | 指定任何特徵的單調性限制條件。<br />**選用**<br />有效值：整數元組。有效整數：-1 (遞減限制條件)、0 (無限制條件)、1 (增加限制條件)。<br />例如，(0, 1)：第一個預測器沒有限制條件，在第二個預測器增加限制條件。(-1，1)：在第一個預測器減少限制條件，並在第二個預測器增加限制條件。<br />預設值：(0, 0) | 
| normalize\_type | 標準化演算法類型。<br />**選用**<br />有效值：*tree* 或 *forest*。<br />預設值：*tree* | 
| nthread | 用於執行 *xgboost* 的平行執行緒數量。<br />**選用**<br />有效值：整數。<br />預設值：最大執行緒數量。 | 
| objective | 指定學習任務和對應的學習目標。範例：`reg:logistic`、`multi:softmax`、`reg:squarederror`。如需有效輸入的完整清單，請參閱 [XGBoost 學習任務參數](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)。<br />**選用**<br />有效值：字串<br />預設值：`"reg:squarederror"` | 
| one\_drop | 當啟用此旗標時，至少有一棵樹一律在退出時刪除。<br />**選用**<br />有效值：0 或 1<br />預設值：0 | 
| process\_type | 要執行的提升程序類型。<br />**選用**<br />有效值：字串。`"default"` 或 `"update"`。<br />預設值：`"default"` | 
| rate\_drop | 退出率，指定在退出時刪除一小部分的舊樹。<br />**選用**<br />有效值：浮點數。範圍：[0.0, 1.0]。<br />預設值：0.0 | 
| refresh\_leaf | 這是 '重新整理' 更新工具外掛程式的參數。當設定為 `true` (1) 時，會更新樹分葉與樹節點的統計資料。當設定為 `false` (0) 時，只更新樹節點的統計資料。<br />**選用**<br />有效值：0/1<br />預設值：1 | 
| sample\_type | 取樣演算法類型。<br />**選用**<br />有效值：`uniform` 或 `weighted`。<br />預設值：`uniform` | 
| scale\_pos\_weight | 控制正負加權的平衡。對於不平衡的分類非常實用。要考慮的典型值：`sum(negative cases)` / `sum(positive cases)`。<br />**選用**<br />有效值：浮點數<br />預設值：1 | 
| seed | 隨機數量種子。<br />**選用**<br />有效值：整數<br />預設值：0 | 
| single\_precision\_histogram | 啟用此標記時，XGBoost 會使用單一精確度而非雙精確度來建立直方圖。僅於 `tree_method` 設為 `hist` 或 `gpu_hist` 時才使用。<br />如需有效輸入的完整清單，請參閱 [XGBoost 參數](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst)。<br />**選用**<br />有效值：字串。範圍：`"true"` 或 `"false"`<br />預設值：`"false"` | 
| sketch\_eps | 僅適用於預估值貪婪演算法。這會轉譯為 O(1/`sketch_eps`) 個資料匣。相較於直接選擇資料匣數量，這會搭配含有示意圖精準度的理論保證。<br />**選用**<br />有效值：浮動、範圍：[0, 1]。<br />預設值：0.03 | 
| skip\_drop | 反覆提升時略過退出程序的可能性。<br />**選用**<br />有效值：浮點數。範圍：[0.0, 1.0]。<br />預設值：0.0 | 
| subsample | 訓練執行個體的次取樣率。將其設定為 0.5 表示 XGBoost 會隨機收集一半的資料執行個體來培養樹。這可避免過度擬合。<br />**選用**<br />有效值：浮點數。範圍：[0,1]。<br />預設值：1 | 
| tree\_method | XGBoost 中使用的樹建構演算法。<br />**選用**<br />有效值：`auto`、`exact`、`approx`、`hist` 或 `gpu_hist` 其中之一。<br />預設值：`auto` | 
| tweedie\_variance\_power | 控制 Tweedie 分發的方差之參數。<br />**選用**<br />有效值：浮點數。範圍：(1, 2)。<br />預設值：1.5 | 
| updater | 以逗號分隔的字串，用於定義要執行的樹更新工具序列。這提供模組化方式來建構和修改樹。<br />如需有效輸入的完整清單，請參閱 [XGBoost 參數](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst)。<br />**選用**<br />有效值：逗號分隔字串。<br />預設值：`grow_colmaker`、prune | 
| use\_dask\_gpu\_training | 如果您要使用 Dask 執行分散式 GPU 訓練，請將 `use_dask_gpu_training` 設定為 `"true"`。Dask GPU 訓練僅支援 1.5-1 及更新的版本。對於 1.5-1 之前的版本，請勿將此值設定為 `"true"`。如需詳細資訊，請參閱[分散式 GPU 訓練](xgboost.md#Instance-XGBoost-distributed-training-gpu)。<br />**選用**<br />有效值：字串。範圍：`"true"` 或 `"false"`<br />預設值：`"false"` | 
| verbosity | 列印訊息的詳細資訊等級。<br />有效值：0 (無訊息)、1 (警告)、2 (資訊)、3 (除錯)。<br />**選用**<br />預設值：1 | 