

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 调整 XGBoost 模型
<a name="xgboost-tuning"></a>

*自动模型调整*也称作超参数调整，是指通过在您的训练数据集和验证数据集上运行多个作业来测试一系列超参数，从而查找模型的最佳版本。您可以选择三种类型的超参数：
+ 一个学习 `objective` 函数，用于在模型训练期间进行优化
+ `eval_metric`，用于在验证期间评估性能
+ 自动调整模型时要使用的一组超参数和一系列值，供每个参数使用

您可以从算法计算的评估指标集合中选择一个评估指标。自动模型优化将搜索所选超参数，以找到值组合，获得能够对评估指标进行优化的模型。

**注意**  
 XGBoost 0.90 的自动模型调整仅可从亚马逊获得 SageMaker SDKs，无法从 A SageMaker I 控制台获得。

有关模型优化的更多信息，请参阅[使用 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)


| 指标名称 | 说明 | 优化方向 | 
| --- | --- | --- | 
| 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 | 