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

超參數

下表包含 Amazon SageMaker XGBoost 演算法所需或最常用的超參數子集。這些是由使用者設定的參數,用來協助從資料預估模型參數。首先列出的是必須設定的超參數,依字母順序排列。接著列出的是選用的超參數,也是依字母順序排列。該 SageMaker XGBoost 算法是開源 DMLC XGBoost 包的實現。如需可針對此版本 XGBoost 設定的一組完整超參數詳細資訊,請參閱 XGBoost 參數

參數名稱 描述
num_class

類別數。

objective 設為 multi:softmaxmulti:softprob 則為必要

有效值:整數。

num_round

執行訓練的捨入數。

必要

有效值:整數。

alpha

權重的 L1 正規化詞彙。增加此值可讓模型更為保守。

選用

有效值:浮點數。

預設值:0

base_score

所有執行個體、全域偏差的初始預測分數。

選用

有效值:浮點數。

預設值:0.5

booster

要使用哪些提升工具。gbtreedart 值使用樹狀模型,而 gblinear 使用線性函式。

選用

有效值:字串。"gbtree""gblinear""dart" 其中之一。

預設值:"gbtree"

colsample_bylevel

每個層級中的每個分割之欄次取樣率。

選用

有效值:浮點數。範圍:[0,1]。

預設值:1

colsample_bynode

每個節點中資料欄的次取樣率。

選用

有效值:浮點數。範圍:(0,1]。

預設值:1

colsample_bytree

建構每棵樹時的欄次取樣率。

選用

有效值:浮點數。範圍:[0,1]。

預設值:1

csv_weights

啟用此標記時,XGBoost 會採用訓練資料的第二個欄 (標籤後面的欄) 做為執行個體權重,區隔 csv 輸入的執行個體重要性。

選用

有效值:0 或 1

預設值:0

deterministic_histogram

啟用此標記時,XGBoost 會決定性地在 GPU 上建立直方圖。僅於 tree_method 設為 gpu_hist 時才使用。

如需有效輸入的完整清單,請參閱 XGBoost 參數

選用

有效值:字串。範圍:"true""false"

預設值:"true"

early_stopping_rounds

模型會一直訓練到驗證分數停止上升為止。驗證錯誤至少需要減少每隔一次early_stopping_rounds才能繼續訓練。 SageMaker託管使用推論的最佳模型。

選用

有效值:整數。

預設值:-

eta

用於更新以避免過度擬合的步驟大小收縮。在每個提升步驟後,您可以直接取得新功能的權重。eta 參數會縮減功能權重,讓提升程序更保守。

選用

有效值:浮點數。範圍:[0,1]。

預設值:0.3

eval_metric

驗證資料的評估指標。預設指標是根據目標指派:

  • rmse:適用於迴歸

  • error:適用於分類

  • map:適用於排名

如需有效輸入清單,請參閱 XGBoost 學習任務參數

選用

有效值:字串。

預設值:根據目標預設。

gamma

進一步在樹上的葉片節點分區所需的最低遺失縮減量。演算法越大就越保守。

選用

有效值:浮點數。範圍:[0,∞)。

預設值:0

grow_policy

控制新增節點到樹的方式。目前只有 tree_method 設為 hist 時才受支援。

選用

有效值:字串。"depthwise""lossguide"

預設值:"depthwise"

interaction_constraints

指定允許互動的變數群組。

選用

有效值:嵌套的整數清單。每個整數表示一個特徵,每個嵌套清單包含允許互動的特徵,例如 [[1,2]、[3,4,5]]。

預設值:無

lambda

權重的 L2 正規化詞彙。增加此值可讓模型更為保守。

選用

有效值:浮點數。

預設值:1

lambda_bias

偏差的 L2 正規化詞彙。

選用

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

預設值:0

max_bin

最大數量的分散式資料匣,以儲存持續功能。僅於 tree_method 設為 hist 時才使用。

選用

有效值:整數。

預設值:256

max_delta_step

每個樹的權重估值允許使用最高差量步驟。使用正整數時,有助於讓更新更為保守。偏好選項是在邏輯回歸中使用。設定為 1-10,以協助控制更新。

選用

有效值:整數。範圍:[0,∞)。

預設值:0

max_depth

最大樹深度。增加此值可讓模型更為複雜也更有可能過度擬合。0 表示無限制。當 grow_policy=depth-wise 時便需要限制。

選用

有效值:整數。範圍:[0,∞)

預設值:6

max_leaves

要新增的最大節點數量。只有 grow_policy 設為 lossguide 時才相關。

選用

有效值:整數。

預設值:0

min_child_weight

子系中需要執行個體權重的最低總和 (hessian)。如果葉片節點中的樹狀分區步驟的執行個體權重總和少於 min_child_weight,建置程序將提供進一步的分區。在線性回歸模型中,這就是對應各節點中所需的最低執行個體數量。演算法越大就越保守。

選用

有效值:浮點數。範圍:[0,∞)。

預設值:1

monotone_constraints

指定任何特徵的單調性限制條件。

選用

有效值:整數元組。有效整數:-1 (遞減限制條件)、0 (無限制條件)、1 (增加限制條件)。

例如,(0, 1):第一個預測器沒有限制條件,在第二個預測器增加限制條件。(-1,1):在第一個預測器減少限制條件,並在第二個預測器增加限制條件。

預設值:(0, 0)

normalize_type

標準化演算法類型。

選用

有效值:treeforest

預設值:tree

nthread

用於執行 xgboost 的平行執行緒數量。

選用

有效值:整數。

預設值:最大執行緒數量。

objective

指定學習任務和對應的學習目標。範例:reg:logisticmulti:softmaxreg:squarederror。如需有效輸入的完整清單,請參閱 XGBoost 學習任務參數

選用

有效值:字串

預設值:"reg:squarederror"

one_drop

當啟用此旗標時,至少有一棵樹一律在退出時刪除。

選用

有效值:0 或 1

預設值:0

process_type

要執行的提升程序類型。

選用

有效值:字串。"default""update"

預設值:"default"

rate_drop

退出率,指定在退出時刪除一小部分的舊樹。

選用

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

預設值:0.0

refresh_leaf

這是 '重新整理' 更新工具外掛程式的參數。當設定為 true (1) 時,會更新樹分葉與樹節點的統計資料。當設定為 false (0) 時,只更新樹節點的統計資料。

選用

有效值:0/1

預設值:1

sample_type

取樣演算法類型。

選用

有效值:uniformweighted

預設值:uniform

scale_pos_weight

控制正負加權的平衡。對於不平衡的分類非常實用。要考慮的典型值:sum(negative cases) / sum(positive cases)

選用

有效值:浮點數

預設值:1

seed

隨機數量種子。

選用

有效值:整數

預設值:0

single_precision_histogram

啟用此標記時,XGBoost 會使用單一精確度而非雙精確度來建立直方圖。僅於 tree_method 設為 histgpu_hist 時才使用。

如需有效輸入的完整清單,請參閱 XGBoost 參數

選用

有效值:字串。範圍:"true""false"

預設值:"false"

sketch_eps

僅適用於預估值貪婪演算法。這會轉譯為 O(1/sketch_eps) 個資料匣。相較於直接選擇資料匣數量,這會搭配含有示意圖精準度的理論保證。

選用

有效值:浮點數、範圍:[0, 1]。

預設值:0.03

skip_drop

反覆提升時略過退出程序的可能性。

選用

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

預設值:0.0

subsample

訓練執行個體的次取樣率。將其設定為 0.5 表示 XGBoost 會隨機收集一半的資料執行個體來培養樹。這可避免過度擬合。

選用

有效值:浮點數。範圍:[0,1]。

預設值:1

tree_method

XGBoost 中使用的樹建構演算法。

選用

有效值:autoexactapproxhistgpu_hist 其中之一。

預設值:auto

tweedie_variance_power

控制 Tweedie 分發的方差之參數。

選用

有效值:浮點數。範圍:(1, 2)。

預設值:1.5

updater

以逗號分隔的字串,用於定義要執行的樹更新工具序列。這提供模組化方式來建構和修改樹。

如需有效輸入的完整清單,請參閱 XGBoost 參數

選用

有效值:逗號分隔字串。

預設值:grow_colmaker、prune

use_dask_gpu_training

如果您要使用 Dask 執行分散式 GPU 訓練,請將 use_dask_gpu_training 設定為 "true"。Dask GPU 訓練僅支援 1.5-1 及更新的版本。對於 1.5-1 之前的版本,請勿將此值設定為 "true"。如需詳細資訊,請參閱 分散式 GPU 訓練

選用

有效值:字串。範圍:"true""false"

預設值:"false"

verbosity

列印訊息的詳細資訊等級。

有效值:0 (無訊息)、1 (警告)、2 (資訊)、3 (除錯)。

選用

預設值:1