

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

# 調校 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 |  分類率，計算方式為 \$1(正確)/\$1(所有案例)。  |  最大化  | 
| validation:auc |  曲線下的區域。  |  最大化  | 
| validation:error |  二元分類錯誤率，計算方式為 \$1(錯誤案例)/\$1(所有案例)。  |  最小化  | 
| validation:f1 |  分類準確性的指標，計算方式為精確度和回呼的調和平均值。  |  最大化  | 
| validation:logloss |  不記錄的機率。  |  最小化  | 
| validation:mae |  絕對平均值錯誤。  |  最小化  | 
| validation:map |  平均值的平均精度。  |  最大化  | 
| validation:merror |  多類別分類錯誤率，計算方式為 \$1(錯誤案例)/\$1(所有案例)。  |  最小化  | 
| 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\$1bylevel |  ContinuousParameterRanges  |  MinValue：0.1、MaxValue：1  | 
| colsample\$1bynode |  ContinuousParameterRanges  |  MinValue：0.1、MaxValue：1  | 
| colsample\$1bytree |  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\$1delta\$1step |  IntegerParameterRanges  |  [0, 10]  | 
| max\$1depth |  IntegerParameterRanges  |  [0, 10]  | 
| min\$1child\$1weight |  ContinuousParameterRanges  |  MinValue：0、MaxValue：120  | 
| num\$1round |  IntegerParameterRanges  |  [1, 4000]  | 
| subsample |  ContinuousParameterRanges  |  MinValue：0.5、MaxValue：1  | 