XGBoost.XGBClassifier分类算法参数详解

1、XGB架构参数
booster:①'gbtree':树模型做为基分类器(默认);②'gbliner':线性模型做为基分类器。③'dart':树模型做为基分类器(采用dropout,随机丢弃一些树,防止过拟合)。

n_estimator:总共迭代的次数,即基学习器的个数。

objective:'reg:linear':线性回归;②'reg:logistic':逻辑回归;③'binary:logistic':二分类,返回概率(默认值);④'binary:logitraw':二分类,返回类别;⑤'multi:softprob':多分类,返回概率;⑥'multi:softmax':多分类,返回类别。

seed:随机种子,便于复现。

verbosity:打印消息的详细程度。默认为0(silent),还可以取1(warning)、2(info)、3(debug)。

nthread:取-1时,使用全部CPU进行并行运算(默认);取1时,使用1个CPU进行运算。

disable_default_eval_metric:是否禁用默认的(验证集的)评估指标,默认为False。如果要用自定义的评估指标,需要将这一项设为True。

early_stopping_rounds:在验证集上,当连续n次迭代,分数没有提高后,提前终止训练,防止过拟合。

2、弱学习器参数
num_class:样本类别数,与'objective':'multisoftmax'并用。
max_depth:树的深度,默认值是6,一般取3-10。过大容易过拟合,过小容易欠拟合。

min_child_weight:最小子节点的权重,默认值为1。如果某个子节点权重小于这个阈值,则不会在分裂。值越大,越容易欠拟合;值越小,越容易过拟合。

gamma:惩罚项系数,在树的叶节点上进一步分裂带来的最小损失函数下降值。gamma越大,算法越健壮。默认值为0。

subsample:子采样参数,即训练每棵树时,使用的数据占全部训练集的比例。默认值为1,一般取0.5-1。可防止过拟合。

colsample_bytree:训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。可防止过拟合。

colsample_bylevel:控制树的每一级的每一次分裂,对特征的采样比重,默认值为1。

colsample_bynode:控制树的每一个节点的每一次分裂,对列数的采样比重,默认值为1。

reg_alpha:L1正则化参数,在高维度的情况下,调节该参数可以加快算法的速度,使模型更加健壮。默认为0。

reg_lambda:L2正则化参数,调节该参数可以减少过拟合,使模型更加健壮。默认值为1。

eta:学习率,控制每次迭代更新权重时的步长,默认0.3。一般取0.01-0.2。

3、其他参数
n_jobs:控制算法的并发线程数

scale_pos_weight:用于数据样本类别不平衡的时候,例如正例:负例 = 1:10,可以设置scale_pos_weight=10。

n_jobs:并行线程数,默认为1。

tree_method:①'auto':使用启发式方法选择最快的方法。②'exact':精确贪婪算法,枚举所有候选项;③'approx':使用分位数草图和梯度直方图的近似贪婪算法;④'hist':快速直方图优化近似贪心算法。 它使用了一些性能改进,例如垃圾箱缓存。⑤'gpu_exact':精确算法的GPU实现。⑥'gpu_hist':hist算法的GPU实现。

参考资料:XGBoost Parameters — xgboost 2.0.0-dev documentation

猜你喜欢

转载自blog.csdn.net/weixin_44458771/article/details/127056387