

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

# 調校 XGBoost 模型
<a name="xgboost-tuning"></a>

*自動模型調校*，又稱為超參數調校，會透過在您的訓練和驗證資料集上，執行許多測試超參數範圍的任務，來尋找最佳版本的模型。您可以選擇三種類型的超參數：
+ 學習 `objective` 功能，用於在模型訓練期間最佳化
+ `eval_metric`，用於在驗證期間評估模型效能
+ 一組超參數和一系列值，各別用於自動調校模型

您可以從演算法計算的評估指標集中，選擇評估指標。自動模型調校會搜尋所選擇的超參數，以找出產生之模型可最佳化評估指標的值組合。

**注意**  
XGBoost 0.90 的自動模型調校只能從 Amazon SageMaker SDK 使用，無法從 SageMaker AI 主控台使用。

如需模型調校的詳細資訊，請參閱[使用 SageMaker AI 執行自動模型調校](automatic-model-tuning.md)。

## XGBoost 演算法計算的評估指標
<a name="xgboost-metrics"></a>

XGBoost 演算法會計算下列指標，用於模型驗證。調校模型時，請選擇這些指標的其中之一以評估模型。如需有效 `eval_metric` 值的完整清單，請參閱 [XGBoost 學習任務參數](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)


| 指標名稱 | Description | 最佳化方向 | 
| --- | --- | --- | 
| validation:accuracy | 分類率，計算方式為 \#(正確)/\#(所有案例)。 | 最大化 | 
| validation:auc | 曲線下的區域。 | 最大化 | 
| validation:error | 二元分類錯誤率，計算方式為 \#(錯誤案例)/\#(所有案例)。 | 最小化 | 
| validation:f1 | 分類準確性的指標，計算方式為精確度和回呼的調和平均值。 | 最大化 | 
| validation:logloss | 不記錄的機率。 | 最小化 | 
| validation:mae | 絕對平均值錯誤。 | 最小化 | 
| validation:map | 平均值的平均精度。 | 最大化 | 
| validation:merror | 多類別分類錯誤率，計算方式為 \#(錯誤案例)/\#(所有案例)。 | 最小化 | 
| validation:mlogloss | 多類別分類的不記錄機率。 | 最小化 | 
| validation:mse | 均方錯差。 | 最小化 | 
| validation:ndcg | 正規化的折扣累計收益。 | 最大化 | 
| validation:rmse | 均方根錯誤。 | 最小化 | 

## 可調校的 XGBoost 超參數
<a name="xgboost-tunable-hyperparameters"></a>

使用下列超參數調校 XGBoost 模型。對 XGBoost 評估指標最佳化影響最大的超參數為：`alpha`、`min_child_weight`、`subsample`、`eta` 和 `num_round`。


| 參數名稱 | 參數類型 | 建議範圍 | 
| --- | --- | --- | 
| alpha | ContinuousParameterRanges | MinValue：0、MaxValue：1000 | 
| colsample\_bylevel | ContinuousParameterRanges | MinValue：0.1、MaxValue：1 | 
| colsample\_bynode | ContinuousParameterRanges | MinValue：0.1、MaxValue：1 | 
| colsample\_bytree | ContinuousParameterRanges | MinValue：0.5、MaxValue：1 | 
| eta | ContinuousParameterRanges | MinValue：0.1、MaxValue：0.5 | 
| gamma | ContinuousParameterRanges | MinValue：0、MaxValue：5 | 
| lambda | ContinuousParameterRanges | MinValue：0、MaxValue：1000 | 
| max\_delta\_step | IntegerParameterRanges | [0, 10] | 
| max\_depth | IntegerParameterRanges | [0, 10] | 
| min\_child\_weight | ContinuousParameterRanges | MinValue：0、MaxValue：120 | 
| num\_round | IntegerParameterRanges | [1, 4000] | 
| subsample | ContinuousParameterRanges | MinValue：0.5、MaxValue：1 | 