2025精准资料天天免费下载 数据挖掘小白系列!XGBOOST参数超详解!参数选择,顺序,值一网打尽!

本文章仅被用于学习交流,并非用于任何商业行为,所有知识点资料源自网络,要是有任何不当之处,请通过私信加以联系,作者会及时予以改正,本文里总结自文档的所有标注的页码均是附件参考文档里的页码,由于markdown不支持附件下载,附件链接如下。

无实际可改写内容,仅提供链接:http://note.youdao.com/noteshare?id=05a144c93bd1f66d0a25881a5fe5ce65。

1xgboost库使用流程 & 参数总表

=============================

重要参数详解_xgboost参数调优流程_xgboost

参数调节顺序:

0 根据情况决定

silent&booster & objective

-> 1 n_estimator & eta

-> 2 max_depth OR gamma

查看模型处于怎样的状态(究竟是过拟合还是欠拟合,到底在方差 - 偏差图像的左边还是右边呢),借此来判定是否需要进行剪枝(对于像XGB这种树模型而言通常都是要这么做的)。

拿来三个子样本,其使用情况可视具体情形而论,还有三个树的剪枝相关参数。

“colsample_bytree”

“colsample_bylevel”

“colsample_bynode”

4个alpha正则化参数中的OR/AND lambda正则化参数,其受到该最大深度以及和gamma的影响,有相应变化。

关于调参这儿有个思路,就是针对单个参数,开始得先借助学习曲线去把大范围找出来,然后依靠交叉(XGboost.cv)进行验证,而对于小范围的组合参数呢,要运用网格搜索来操作。

PS:如果是大数据集就只能手动CV调

CV调节方式(P36)

我们先起始于最为初始的,去设定默认参数,接着先观察一番默认参数情形下,我们的交叉验证曲线呈现出何种模样。于此,我们需运用三组曲线。一组用以展现原始数据之上的结果,一组用以展现上一个参数调节完成之后的结果,最后一组用以展现当下我们正在调节的参数的结果。

极为关键的参数乃其详尽阐释,关键参数其一为:n_estimators(它从模型视角定位在P5之处)。

重要参数详解_xgboost参数调优流程_xgboost

说明:

弱分类器的数量,就是建立多少课树

作用:

当n_estimators越大的时候,模型所具备的学习能力将会变得越强,与此同时,模型也就越来越容易出现过拟合的情况。

参数推荐:

一般情形下,通常是不会给出建议的,针对的是一个数目,这个数目是比较大的那种,300以下是更好的情况,要是数据量达到几十万,甚至是百万,那么就能够适当进行调高。

注意点:

树的数量,在前期的时候,对模型效果的影响程度较大,到了后期,这种影响程度减小,而且,有可能由于数量过多,进而致使效果下降或者出现过拟合的情况。

重要参数2: subsample(数据角度P12)

重要参数详解_xgboost参数调优流程_xgboost

说明:

通常会在样本量处于较大状态的时候,使用控制抽样,那么通过控制抽样所抽取出来的样本量大概是多少呢?

作用:

让模型更加集中于那些困难样本

参数推荐:

可借助学习曲线一般(0.05,1,20)确定大范围

注意点:

1数据量少时不推荐使用

重要参数3: eta(评估器角度P14)

xgboost参数调优流程_xgboost_重要参数详解

说明:

在迭代决策树这个行为期间所呈现出的步长,它还拥有另外一个被称作学习率这一名称哟。

作用:

越大,迭代速度越发快,算法极限很快就被达到,存在无法收敛到真正最佳的可能性。

更小的时候,越具备找到愈发精确的最佳值的可能性,更多空间被给予了后续建立的树,然而迭代速度会相对迟缓。

参数推荐:

通常会与n_estimators进行交互,运用网格交叉搜索来一并确定两者的参数值,通常处于0.01至0.2这个范围之间。

注意点:

站在评估器的视角来看,新创建的评估器必然得比先前的更为出色,属于当下最为优质的。

重要参数4:booster(评估器角度P17)

xgboost参数调优流程_xgboost_重要参数详解

说明:

booster"来控制我们究竟使用怎样的弱评估器。

作用:

不同情况下不同的弱评估器的选择对最后模型的效果影响很大。

参数推荐:

gtree:默认

gnlinear:一般数据成线性关系时候使用

dart:比梯度提升树有更好的防过拟合功能

注意点:

1数据量不大时:gbtree和dart效果是相似的。

重要参数5:objective(损失函数角度P18)

重要参数详解_xgboost_xgboost参数调优流程

说明:

objective 来控制我们究竟使用怎样的损失函数

作用:

不同情况下不同的损失函数对最后模型的效果影响很大。

参数推荐:

重要参数详解_xgboost参数调优流程_xgboost

更多详见:

注意点:

1分类型的目标函数导入回归类中会直接报错。

重要参数7:gamma(树结构角度P31)

xgboost_xgboost参数调优流程_重要参数详解

说明:

被称为“复杂性控制”(complexity

一棵树的叶节点上进一步分枝所需最小的目标函数减少量,是Gain中的惩罚项,它会因增添的叶子越多,使得结构分之差Gain遭受越重的惩罚,是防止过拟合的关键参数,也是对梯度提升树影响极大的参数之一。

作用:

设定要是越大,那么算法就会显得越发保守,进而树的叶子数量就会越少,最终模型的复杂度就会越低。

参数推荐:

寻常的学习曲线,具体得自身去尝试,要是学习曲线没办法看出来的情形下,那就采用xgboost.cv。

注意点:

曲线运行速度比较缓慢,且曲线效果令人匪夷所思,这种情况下,推荐使用xgboost.cv来进行学习,它可用于学习曲线。

关键的剪枝参数有,max_depth,以及colsample_bytree,从树结构的方面来说在P35。

重要参数详解_xgboost参数调优流程_xgboost

说明:

剪枝参数。

作用:

控制过拟合。

参数推荐:

通常会运用max_depth,以及colsample_bytree,还有colsample_bilevel。

注意点:

1最大深度的功能与参数gamma相似,因此如果先调节了

于是乎,则最大深度极有可能没法展现出巨大的成效。当然,要是先去调整了最大深度咧,则同样存在有可能无法呈现出明显的效果。通常而言,在这两个参数当中我们仅仅使用其中一个咧,不过,将两个都尝试一番也并无坏处。

在学习曲线方面,其产生的运行速度呈现出较为迟缓的态势,而且曲线所展现出的效果令人感到匪夷所思时新澳门天天免费谜语下载,建议使用 xgboost.cv。

正则化参数alpha,lambda(P23),还有3其他参数以及它们的详细说明。

重要参数详解_xgboost参数调优流程_xgboost

说明:

都是控制正则化强度的参数。

作用:

可选择二选一进行使用,也能够一起使用来加大正则化的力度。在alpha以及lambda都变为0的时候,目标函数即为普通的梯度提升树的目标函数。

参数推荐:

一般先用L2,效果还不好再加上L1,配合网格搜索。

注意点:

1实际使用防止过拟合还是先考虑剪枝,或者是参数伽马。

样本平衡参数 scale_pos_weight (P41)

重要参数详解_xgboost参数调优流程_xgboost

说明:

调节样本不平衡的参数。

作用:

正负样本比例。

参数推荐 & 注意点:

官网表明,当我们仅仅关注模型的整体表现之时,就要采用AUC当作模型评估的指标,运用scale_pos_weight去处理样本不平衡的状况,要是我们在乎预测出正确的概率,那么我们就没办法借助调节scale_pos_weight来减轻因为样本不平衡问题所带来的影响。

这个时候,我们得去考量另外一个参数,那就是max_delta_step。这个参数理解起来极其困难,它被称作是“树的权重估计里所允许的单次最大增量”,能够认为是会产生影响。

做出估计的参数,xgboost官方网站上面表明,假设我们正专注于处理样本不均衡这一状况,而且极其在乎获取到精准正确的预测概率,那么便能够进行设置。

帮助收敛的是max_delta_step参数,该参数为一个像1这样的有限的数 ,max_delta_step参数一般不被使用,在二分类情况下的样本不均衡问题处此参数有着唯一的用途。

其他参数(P45)

xgboost参数调优流程_xgboost_重要参数详解

更多计算资源:n_jobs

.nthread以及n_jobs属于算法运行时所运用的线程,跟sklearn里的规则相同,输入整数意味着所使用的线程,输入 -1意味着使用计。

算机全部的那些计算资源,要是我们持有的数据量是很大的状况,那么我们依可能需要这个参数去帮我们展开调用更多线程的行为。

降低学习难度:base_score

较易被混淆的参数是base_score,它被称作全局偏差,在分类问题里,它是我们期望关注的分类的先验概率,举例来说,要是我们有1000个样本,其中300个是正样本,700个是负样本,那么base_score就是0.3,对于回归而言。

这个分数默认是0.5,然而于这种情形下此分数并非有效,众多使用XGBoost的人业已提出,在使用回归时base_score的默认应当是标签的均值,只是目前xgboost库并未对此予以改进,运用该参数,咱们便是在告知模型一些我们知晓但模型不见得能从数据里学到得得信息,通常我们不会运用这个参数,可是对于严重的样本不均衡问题,设置一个正确的base_score取值是很有必要的。

生成树的随机模式:random_state

在xgb库里头,存在着空值生成树的随机模式的参数random_state ,在sklearn中,同样有着这个参数random_state。在之前进行剪枝的时候,我们讲过能够经由随机抽样样本,随机抽样特征去减轻过拟合带来的影响 ,我们能够凭借其他参数来对随机抽样的比例产生影响 ,然而却没办法对随机抽样有更多的干涉 ,所以,真正的随机性是由模型自身生成的。要是期望控制这种随机性 ,能够在random_state参数里输入固定整数。要留意的要点是,于 xgb 库以及 sklearn 库之内,在 random_state 参数里输入相同的整数,并不一定就意味着是同一个随机模。

采用不同方式,其结果不一定相同,所以致使模型的feature_importances也会存在不一致情况。

自动处理缺失值:missing

具有能自动处理缺失值这一特性的XGBoost模型,其设计初衷是为了实现对稀疏矩阵的处理,我们能够于参数missing里输入一个对象,诸如np.nan或者数据的任意取值,以此表示把所有含有该对象的数据当作空值来处理。XGBoost会将所有空值依照稀疏矩阵中的0那样去处理,所以在运用XGBoost时,我们也能够不处理缺失值。当然,一般来讲,要是我们知晓业务,同时也清楚缺失值的由来,我们是期望手动去填补缺失值的。在GBDT或者其他算法里使用1阶,其目的是为了求极值,在XG中使用2阶,是为了简化目标函数,求导是为了契合泰勒展开的要求,这是为了让目标函数仅仅跟树结构ft有关联,此时还尚未开始取极值,求极值的时候同样是求一阶。

属性的特征重要性类型:importances_type

XGBOOST自带importance参数说明:

此为一个链接,链接的具体指向是https://www.cnblogs.com/RainLa/p/11929515.html。

这是一个网址链接,https://www.lizenghai.com/archives/77628.html并不是一个句子,无法按照要求改写。

XGBOOST自带importance实战:

提供的内容并非一个句子呀,请提供具体的句子以便进行改写。但其链接为https://blog.csdn.net/weixin_43469047/article/details/100181972。

这是一个网址链接,并非一个句子,无法按照要求改写。https://blog.csdn.net/weixin_43469047/article/details/101310435。

Shap可视化可解释性特征重要性库(推荐先看):

那个链接是https://zhuanlan.zhihu.com/p/64799119。

你提供的内容看起来像是一个链接呀,并不是一个句子要求改写呢,请提供正确的句子以便我按照规则进行改写。

这个给出的并非是一个需要改写的句子呀,它看起来像是一个链接呢。

参考文档代码示例:

是树模型的优势中的一个方面2025年正版资料免费最新版本,那就是其能够去查看模型的重要性分数,而且还能够运用嵌入法来进行特征选择,这一点在P9处有体现。

关于进化的学习曲线,其中包含方差与泛化误差,并且要进行8.细化学习曲线的操作以找出最佳n estimators,这一内容位于P10。

细化学习曲线,找出最佳eta-p16

借助网格搜索,去寻觅最佳的参数组合,这当中包括alpha以及lambda,p25。

细化学习曲线,找出最佳 gamma-p31

使用xgboost调节gamma-p32

完整CV调参示例-p36

使用Joblib保存和调用模型 p40

特别注意:

XGB vs GBDT 核心区别1:求解预测值

GBDT里预测值的方式不一样,它是由所有弱分类器上预测结果加权求和得出,在每个样本上,预测结果是样本所在叶子节点的均值。然而,XGBT中的预测值却是所有弱分类器上叶子权重直接求和得到,计算叶子权重是个复杂的过程。

XGB vs GBDT 核心区别2:正则项的存在

在平常的梯度提升树GBDT里头,我们于目标函数中间是不把正则项加以运用的2025年天天免费资料,2025,然而XGB借助正则项去对对树模型生来便易于出现的情况进行修正。

过拟合这个缺陷,在剪枝之前让模型能够尽量不过拟合。

实战推荐:

这是一个链接,链接内容为https://blog.csdn.net/u013709270/article/details/78156207。

关键词:

客户评论

我要评论