今天的主题是:XGBoost的常用参数含义及一些常见的调参场景
相关代码已经上传至Github:https://github.com/LucasGY/1-MLbase
目录如下
一、 XGBoost参数
1.1 XGBoost框架参数(General parameters)
1.2 XGBoost 弱学习器参数(Booster parameters )
二、常用的调参场景
2.1 控制过拟合
2.2 更快的训练表现
2.3 处理不平衡的数据集
三、代码实战
3.1 准备玩具数据集并划分数据
3.2 模型超参数调优训练
一、 XGBoost参数
XGB的参数类型又可以被分为:XGBoost框架参数(General parameters)、XGBoost 弱学习器参数(Booster parameters )、命令行版本的参数(Command line parameters)以及其他参数
1.1 XGBoost框架参数(General parameters)
1. booster [default= gbtree ]
booster决定了XGBoost使用的弱学习器类型,可以是默认的gbtree, 也就是CART决策树,还可以是线性弱学习器gblinear以及DART。一般来说,我们使用gbtree就可以了,不需要调参。Which booster to use. Can be gbtree, gblinear or dart; gbtree and dart use tree based models while gblinear uses linear functions.
2. n_estimators=100
n_estimators则是非常重要的要调的参数,它关系到我们XGBoost模型的复杂度,因为它代表了我们决策树弱学习器的个数。这个参数对应sklearn GBDT的n_estimators。n_estimators太小,容易欠拟合,n_estimators太大,模型会过于复杂,一般需要调参选择一个适中的数值。
3. objective [回归default=reg:squarederror] [二分类default=binary:logistic][多分类default=multi:softmax]
objective代表了我们要解决的问题是分类还是回归,或其他问题,以及对应的损失函数。具体可以取的值很多,一般我们只关心在分类和回归的时候使用的参数。在回归问题objective一般使用reg:squarederror