技术分享 | 机器学习-浅谈XGBoost算法

Posted Q比特空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享 | 机器学习-浅谈XGBoost算法相关的知识,希望对你有一定的参考价值。

一、XGBoost算法简介  

XGBoost算法全称Extreme Gradient Boosting(极值梯度提升算法),由陈天奇等人在2016年提出来的,它是一种提升树模型,使用加法模型和前向优化算法集成多种树模型(弱分类器),形成强分类器,来进行数据分类或预测。

XGBoost综合集成了多个不同基分类器的训练结果,这里的基分类器就是决策树分类器,如图所示,前向分布和加法模型体现在每一次叠加的模型都去拟合上一次模型拟合后产生的残差,使得预测结果得到进一步的优化。

技术分享 | 机器学习-浅谈XGBoost算法

XGBoost算法主要用来解决有监督学习问题,简单说,有监督学习问题就是根据多维数据特征的训练数据集Xi来预测目标变量yi的值。


二、XGBoost模型
由于 涉及公式较多,我们以截图形式展示 该部分内容

2.4 实例

目标:预测各类人玩游戏的可能性

给定数据集:五类人:青少年男女(年龄少于15岁),中年妇女,老年男女

根据男生比女生爱玩游戏,青少年比老年人爱玩游戏的原则将回归树设计为划分两次:第一次是判断年龄是否少于15岁,第二次判断是否为男性,得到分来结果,并进行梯度统计,将梯度统计的结果代入到优化目标函数中,得到的值越小,就说明该模型的预测能力越好。

三、XGBoost算法的特点

3.1正则化

XGBoost算法在目标函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数,从权衡误差角度来讲,正则项降低了模型的不一致性,使学习出来的模型更加简单,防止过拟合,这也是XGBoost一大特色。

3.2并行处理

XGBoost算法在训练数据之前,预先对数据进行了排序,然后保存为块结构,可以实现并行计算,训练中重复地使用这个结构,极大程度上减小计算量。在进行树节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。

3.3灵活性

XGBoost算法支持用户自定义目标函数和评估函数,只要目标函数二阶可导就行。它对模型增加了一个全新的维度,训练处理不会受到任何限制。

四、XGBoost在金融方面的应用

随着消费信贷的快速发展,公众的消费观念从传统的存钱消费转变为先消费再存钱,使用未来的资金享受当前的便捷,个人信贷消费变得原来越普遍,然而,贷款不还恶意行为也给商业银行带来了较高的经营风险。因此,商业银行以及消费信贷公司建立科学精准的个人信用评估和预测体系对信贷行业的发展有着十分重大的意义。通过XGBoost算法对个人信用进行科学的评估,准确地识别个人信贷风险,可以节约在个人信贷审批过程中人力物力资源,提高商业银行消费贷款审批速度,降低银行经营风险,促进资源的优化配置。

五、参考文献

[1] Chen T, Guestrin C. XGBoost: A scalable tree boosting system[C]//Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining. 2016: 785-794.

[2] 周志华. 机器学习: Machine learning[M]. 清华大学出版社, 2016.

[3] 李航. 统计学习方法[M]. 清华大学出版社, 2012.

[4] 石岩. 基于XGBoost模型的商业银行个人信用评估研究[D]. 2018.




以上是关于技术分享 | 机器学习-浅谈XGBoost算法的主要内容,如果未能解决你的问题,请参考以下文章

机器学习基础数学推导+纯Python实现机器学习算法17:XGBoost

机器学习:集成算法 - xgboost

机器学习集成学习进阶Xgboost算法案例分析

机器学习——XGboost算法

机器学习集成学习进阶Xgboost算法原理

# 机器学习算法总结-第九天(XGboost)