问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...学习第十章之机器学习神器: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搜索王宇韬,进行查看。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
氢离子和碳酸根 氢离子和碳酸氢根 哪个反应快为什么 乌金木有哪些家具 乌金木家具如何搭配 木饰面装修多少钱一平方 关于加速度知识点的三个疑问 ...章探究加速度与力质量的关系知识点|物理加速度的5个公式 这只黑猫属于什么品种 孟买猫的免疫力如何 点火开关上的1234分别于红黄蓝黑线谁对应 万和热水器拨码开关,1234是全开的吗 oppor11计步器在哪里 老款捷达多久换正时皮带,现在64000公里 作文题目是《我认识的名人》,怎么写ぁぁ 日照年夜饭大厨上门 上海年夜饭大厨上门 2015年农历正月十三23点8分生命运 请问在哪里找上门做年夜饭的厨师? 农历2009年正月十三下午17点30分生女 姓陈 八字如何?五行?名字要补那行... 骊威有几种颜色 2015年正月十三,下午3点43分生女,姓周,取什么名好 华为mate8截屏图片在哪里 我把钱打到以前掉的卡上,我卡已经补办了怎么办 秋装混搭时尚 镂空针织衫显瘦又性感 东北人说色蓝是什么意思 太平洋保险交满一年是不是可以提款急用 ...短信是申请开通上海富友支付服务有限公司委托支付功能,正常吗?_百度... 《使徒行者2》结局取景地曝光,其实这条最美老街更值得去,什么意思? ...了我说了声祝你们幸福哈,然后他就说了一个哦,我祝他 立即打开 百度知道-有奖回答 千万用户最喜欢的问答社区 我江西... 使徒行者2在哪里拍的 拍摄取景地盘点 我的雅马哈摩托车在车库怠速启动了12小时左右对发动机有什么影响? 摩托车(铃木王)车子只能跑到每小时48公里,油门加大了排气管有放炮声,请... "使鸡司夜,令狸执鼠,皆用其能,上乃无事"是什么意思? "夜店"是什么意思? 夜交中药网的"夜交"是什么意思? 我是中专生可以报考二级建造师吗? 大专怎么考二级建造师最快 玉米深加工有哪些重要产品和应用前景? 请问病假超过六个月单位是否有权解除? 无固定期限合同因病请假半年 公司能解除合同吗 员工在公司工作不满一年,请病假已经满6个月,是否可以解除合同? 李秉权个人履历 ps!!求高手帮忙P个简历封面~~ 李秉权的李秉权轶事 高手制作封面! 李秉权学术荣誉 跪求好心的电脑高手制作奇绝的小说封面一张! 求高手制作女尊小说封面! 今早做了个梦,梦到我去偷钱,后面还被抓了。这什么预兆?解梦 我晚上吃鱼鱼刺刺进肉里面怎么办好