来自风控制建模
我相信我所有的朋友都用过XGBoost模型。XGBoost由于其良好的效果、透明性和易于解释,成为一种特别流行的算法模型。边肖今天也将推出XGBoost参数调整。
一、XGBoost参数解释
XGBoost有三种类型的参数:
1.一般参数:模型的宏观参数控制模型的宏观功能,如助推器、nthread和slip。
2.升压参数:控制每一步升压树或回归的生成。
3.学习目标参数:确定学习目标,如损失函数或评价函数。
1.1一般功能:
1.升压器[默认gbtree]
选择每次迭代的模型,有两个选项:
Gbtree:基于树模型的升级
Gbliner:基于线性模型的升级
默认是gbtree,一般gbtree的效果远远好于gbliner
2.无声[默认0]
当该参数值为1时,静音模式打开,这意味着不打印运行信息。一般这个参数保持默认值0,因为它可以帮助我们更好的理解模型。
3.nthread[默认值是可能的最大线程数]
此参数用于多线程控制,应该输入系统的内核数。默认值是当前系统中的最大线程数。
4.num _ Pb buffer[由系统自动设置]
5.num_feature[由系统自动设置]
1.2助推器参数
这里以gbtree为例介绍一下:
1.eta[默认0.3]
学习率用来控制树的重量。每次迭代后,xgb模型会将叶节点的得分乘以这个系数,以此削弱每棵树的影响,避免过拟合。
一般在调eta的时候会考虑迭代次数。
如果eta增加,迭代次数就会减少。反之亦然。
2.min_child_weight[默认1]
表示最小叶节点的样本权重之和。可以用来避免过拟合。当其值较大时,可以避免学习局部特殊样本。但是,如果这个值太高,就会导致不合身。该参数需要使用CV进行调整。
3.max_depth[默认6]
指示树的最大深度。也是为了避免过拟合。当其值较大时,模型会学习更具体、局部的样本,可能会导致过拟合。您需要使用CV函数进行调整。典型值:3-10
4、最大叶节点数
指示树中最大的节点数或树叶数。可以代替max_depth。因为如果生成二叉树,深度为n的树最多能生成n2片叶子。
5.gamma[默认0]
节点拆分时,只有拆分后损失函数值下降才会拆分。Gamma指定节点分裂所需的最小损失函数降。该参数值越大,算法越保守。该参数的值与损失函数密切相关,需要调整。
6.max_delta_step[默认0]
此参数限制了每棵树重量变化的最大步长。如果此参数的值为0,则表示没有约束。如果给它一个正值,会使算法更加保守。通常不需要设置这个参数。但当不同类别的样本非常不平衡时,对logistic回归非常有帮助。这个参数一般不用,但是你可以发现它更有用。
7.子样本[默认1]
此参数控制每棵树的随机抽样比例。通过降低该参数的值,算法将更加保守,避免过拟合。但是,如果该值设置得太小,可能会导致拟合不足。典型值:0.5-1
8.colsample_bytree[默认1]
它类似于GBM中的max_features参数。用于控制随机采样列数的比例(每列是一个特征)。典型值:0.5-1
9.colsample_bylevel[默认1]
用于控制树的每个级别的每个拆分中的列数的采样比率。我个人不怎么用这个参数,因为子样本参数和colsample_bytree参数可以起到同样的作用。但是,如果您感兴趣,您可以探索该参数的更多用途。
10.lambda[默认1]
重量的L2正则项。(类似于Ridgeregression)。此参数用于控制XGBoost的正则化部分。虽然大多数数据科学家很少使用这个参数,但它可以用来减少过度拟合。
11.alpha[默认1]
权重的L1正则项。(类似于Lassoregression)。它可以应用在高维的情况下,使得算法更快。
12.scale_pos_weight[默认1]
当各种样本不平衡时,将该参数设置为正值可以使算法收敛更快。
1.3学习任务参数
此参数用于控制理想的优化目标和每个步骤结果的测量方法。
1.目标[默认规则:线性]
该参数定义了需要最小化的损失函数。最常用的值有:
二元:逻辑
二进制:logitraw
2.eval_metric[默认值取决于目标参数的值]
评价模型的指标主要是评价验证集。对于回归问题,默认值是rmse,对于分类问题,默认值是error。典型值为:
均方根误差
平均绝对误差
对数损失负对数似然函数值
错误二级分类错误率(阈值为0.5)
多分类错误率
多分类对数损失损失函数
曲线下面积
3.种子(默认为0)
随机数的种子设定它可以再现随机数据的结果,也可以用来调整参数。
二、XGBoost参数调整示例
以下主要是网格搜索和随机搜索的例子:
原始数据集仍然是边肖上传到github上的数据集。
本文利用变异系数来调整参数,
首先,定义了一个xgboost CV函数,该函数可以建立XGB模型并进行交叉验证。
接下来,我们将开始调整参数:
1.选择更高的学习率。一般来说,学习率是0.1。但是对于不同的问题,理想的学习率有时会在0.05到0.3之间波动。选择与该学习率相对应的理想决策树数量。
2.对于给定的学习速率和决策树数量,优化决策树的特定参数(max _ depth、min _ child _ weight、gamma、subsample、colsample _ bytree)。在确定一棵树的过程中,我们可以选择不同的参数。
3.调整3 . xboost(λ,α)的正则化参数.这些参数可以降低模型的复杂度,提高模型的性能。
4.降低学习率,确定理想参数。
待续。。。
谢谢大家
1.《subsample xgb调参小结》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《subsample xgb调参小结》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1345752.html