...学习第十章之机器学习神器:XGBoost与LightGBM模型-XGBoost算法原理...
发布网友
发布时间:2024-10-01 14:49
我来回答
共1个回答
热心网友
时间:2024-11-10 22:02
在上一章我们讲解了Boosting算法的两个经典算法:AdaBoost和GBDT算法,在本章我们将讲解基于GBDT算法的两个升级版本的Boosting算法:XGBoost和LightGBM算法,这两个算法可以说是目前机器学习竞赛中的明星算法,在商业实战中也有非常广泛的应用场景。这两种算法运行速度快,预测准确度高,且支持并行操作,极大的提高了机器学习的效率和效果,无论在分类模型还是回归模型都有很大的作用,因此本章会针对这两个模型,都会讲解一个分类模型及一个回归模型方便大家理解:在XGBoost算法中将讲解金融反欺诈模型和信用评分模型;在LightGBM模型中会讲解客户违约预测模型和广告收益回归预测模型。
10.1 XGBoost算法原理(了解)
XGBoost算法是由华盛顿大学的陈天奇博士(本科就读于上海交通大学的 ACM 班)开发并开源给大家使用的,其官方文档地址为: https://xgboost.readthedocs.io,在官方文档中有很多算法细节和使用方法,由于官方文档是英文的,这里讲解一个查看英文文档的便捷方法:下载谷歌浏览器( google.cn/intl/zh-CN/ch...),然后在界面上右击选择“翻译中文(简体)(T)”,即可看到下图所示的中文翻译文档了。
XGBoost算法可以说是集成学习方法的王牌算法,在国外著名的数据挖掘比赛平台Kaggle上,众多获胜者都是用了XGBoost算法,XGBoost在绝大多数的回归和分类问题上表现的十分不错,本节就简单介绍下XGBoost算法的基本原理和代码实现。
10.1.1 XGBoost算法核心思想
XGBoost算法某种程度上可以说是上一章讲解的GBDT算法的改良版,其本质都是Boosting算法中拟合残差的思想:如下图所示为9.3.1节讲解GBDT算法提到的信用卡额度的预测模型,其中初始决策树预测后不完全准确,会产生一些残差,因此会用新的决策树来拟合该残差,新的决策树又会产生新的残差,这时再构造新的决策树来拟合新的残差……如此迭代下去直至符合设定条件为止。
有的读者可能有疑问了,既然XGBoost算法的核心思想和GBDT算法都是Boosting算法中拟合残差的思想,那么其优势到底在什么地方呢?这个我们在下一节进行讲解。
10.1.2 XGBoost算法数学原理概述(了解)
由于XGBoost算法的数学原理涉及非常多的高等数学和线性代数的知识,本书不过多展开,对于普通读者,了解10.1.1节的核心思想和10.1.3节的简单代码实现即可阅读10.2和10.3节的案例实战了,在本书随书所赠材料中,也会有陈天奇博士所著XGBoost论文和相关PPT供感兴趣的读者参考,这里我们主要从文字的角度讲解XGBoost算法数学原理的一些核心知识点。
陈天奇博士XGBoost论文PPT.pdf 陈天奇博士XGBoost论文.pdf
作为GBDT算法的高效实现,XGBoost算法在如下两个方面做了优化:
1.算法本身的优化:XGBoost算法的损失函数,除了本身的损失,还加上了正则化部分,可以防止过拟合,泛化能力更强。
XGBoost算法的损失函数是对误差部分采用二阶泰勒展开,相较于GBDT算法的损失函数只对误差部分做负梯度(一阶泰勒)展开,更加准确。
2.算法运行效率的优化:对每个弱学习器,如决策树建立的过程做并行选择,找到合适的子树节点分裂特征和特征值,从而提升运行效率。
其中算法本身的优化是重点也是难点,其数学推导非常复杂,感兴趣的读者可以查看陈天奇博士的相关论文,本书将着重介绍其代码实现及案例实战。
10.1.3 XGBoost算法的简单代码实现
XGBoost模型既可以做分类分析,也可以做回归分析,分别对应的模型为XGBoost分类模型(XGBClassifier)及XGBoost回归模型(XGBRegressor)。
XGBoost模型的安装办法可以采用PIP安装法,以Windows操作系统为例,Win+R快捷键调出运行框,输入cmd后,在弹出界面中输入代码后Enter键回车运行即可:
如果是在Jupyter Notebook编辑器中,则可输入如下内容,然后运行该代码块即可:
XGBoost分类模型的引入方式:
在Jupyter Notebook编辑器中,在引入该库后,可以通过如下代码获取官方讲解内容:
XGBoost分类模型简单代码演示如下所示:
其中X是特征变量,其共有2个特征;y是目标变量;第4行代码使用array数组类型的数据做演示,因为XGBoost分类模型的特征变量不支持直接输入list列表类型的数据,可以传入array数组格式的数据或者DataFrame二维表格格式的数据;第7行引入模型;第8行通过fit()函数训练模型;最后1行通过predict()函数进行预测,预测结果如下:
XGBoost回归模型的引入方式:
在Jupyter Notebook编辑器中,在引入该库后,可以通过如下代码获取官方讲解内容:
XGBoost回归模型简单代码演示如下所示:
其中X是特征变量,其共有2个特征;y是目标变量;第5行引入模型;第6行通过fit()函数训练模型;最后1行通过predict()函数进行预测,预测结果如下:
10.1.4课程相关资源
笔者获取方式:微信号获取 添加如下微信:huaxz001 。 笔者网站: 华小智首页 王宇韬相关课程可通过: 京东链接:[ https://search.jd.com/Search?keyword=王宇韬],搜索“王宇韬”,在淘宝、当当也可购买。加入学习交流群,可以添加如下微信:huaxz001(请注明缘由)。
《包邮 Python大数据分析与机器学习商业案例实战 王宇韬 钱妍竹8069933》【摘要 书评 试读】- 京东图书 (jd.com)
各类课程可在 网易云、 51CTO搜索王宇韬,进行查看。