【机器学习--参数篇】XGBoost调参

参考1 参考2

1、通用参数

控制XGBoost的宏观功能

名称解释默认值补充
booster选择每次迭代的模型gbtreegbtree:基于树
gbliner:线性模型
slient控制是否输出信息=1: 不会输出
=0: 输出
输出能够更好的理解模型
nthread线程数,=系统核数如果你希望使用CPU全部的核,那就不要输入这个参数,算法会自动检测它

2、Booster参数

尽管有两种booster可供选择,我这里只介绍tree booster,因为它的表现远远胜过linear booster,所以linear booster很少用到。

名称解释默认值补充
eta类似GBM的learning rate.
通过减少每一步的权重,提高模型的鲁棒性。
0.3
[0,1]
典型值0.01 - 0.2
min_child_weight决定最小叶子节点样本权重和,用于避免过拟合1
[0, ∞ \infty ]
当值较大时,可以避免模型学习到
局部的特殊样本,但如果过高,会导
致欠拟合,需要使用CV来调整
max_depth树的最大深度6
[1, ∞ \infty )
典型值为3 - 10
min_leaf_nodes树上最大的节点或叶子的数量[0, ∞ \infty ]可以代替max_depth的作用,如果
是二叉树深度为n的树最多生成 n 2 n^2 n2个叶子
gamma节点分裂所需的最小损失函数下降值0
[0, ∞ \infty ]
在节点分裂时,只有分裂后损失函数
的值下降了,才会分裂这个节点
subsample随机采样训练样本1减小这个参数的值,算法会更加保守
避免过拟合,典型值0.5-1
colsample_bytree生成树时进行的列采样10.5-1

剩下的也还有一些参数,但是初级水平接触不到

3、学习目标参数

名称解释默认值经验值
objective损失函数见下表介绍一下分类参数值,见下表
eval_metric评价函数回归: rmse
分类: error
取值有:rmse, mae, logloss, error,
merror,mlogloss, auc
seed随机数的种子0

其中objective的参数,见下表:

名称解释
回归问题
reg:linear线性回归
reg:logistic逻辑回归
reg:gamma使用log-link进行gamma回归。输出是伽玛分布的平均值。它可能是有用的,例如,用于建模保险索赔严重性,或任何可能是伽马分布的结果。
reg:tweedie带有日志链接的Tweedie回归。它可能是有用的,例如,用于模拟保险中的总损失,或者可能是Tweedie分布的任何结果。
分类问题
binary:logistic二元分类的逻辑回归,输出概率
binary:logitraw二元分类的逻辑回归,逻辑变换前的输出得分
binary:hinge二元分类的铰链损失。这使得预测为0或1,而不是产生概率
multi:softmax设置XGBoost使用softmax目标进行多类分类,还需要设置num_class(类的数量)
multi:softprob与softmax相同,但输出一个矢量,可以进一步重新整形为矩阵。结果包含属于每个类的每个数据点的预测概率。ndata * nclassndata * nclass
其他
count:poisson计数数据的泊松回归,泊松分布的输出均值,max_delta_step在泊松回归中默认设置为0.7(用于保证优化)
survival:cox对于正确的审查生存时间数据的Cox回归(负值被认为是正确的审查)
请注意: 预测是在风险比率表上返回的(即比例风险函数中的HR = exp(marginal_prediction)), h(t) = h0(t) * HR
rank:pairwise使用LambdaMART执行成对排名,其中成对损失最小化
rank:ndcg使用LambdaMART执行列表方式排名,其中规范化折扣累积增益(NDCG)最大化
rank:map使用LambdaMART执行列表方式排名,其中平均平均精度(MAP)最大化

疑问:survival:cox在预测中如何发挥作用

4、xgb.cv()的函数

名称解释默认值补充
booster选择每次迭代的模型gbtreegbtree:基于树
gbliner:线性模型
slient控制是否输出信息=1: 不会输出
=0: 输出
输出能够更好的理解模型
nthread线程数,=系统核数如果你希望使用CPU全部的核,那就不要输入这个参数,算法会自动检测它

实例:

import两种XGBoost:
1.xgb - 直接引用xgboost,接下来会用到其中的‘cv’函数
2. XGBClassifier - 是xgboost的sklearn包,允许使用GridSearch和并行处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值