Boosting(XGBoost、LightGBM以及CatBoost)
1.Boosting
- 基本思想: 根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,将训练好的弱分类器以累加的形式结合到现有模型中。这个过程会不断减小损失函数,使模型偏差不断降低。
2.XGBoost
优势:(相对于GBDT)
- 正则化: 防止模型过拟合
- 并行处理: 在选取叶子节点分裂特征的时候可以并行,速度快很多
- 自动处理缺失数据: 会把缺失值放进左右子树看效果
- 剪枝策略: 普通的提升采用贪心算法,只有不再有增益的时候才会停止分裂,XGBoost有一个阈值,可以调节
- 更加高效的拟合误差: 对目标函数进行了二阶泰勒展开
- 支持对数据进行采样,支持列抽样: 降低过拟合,减少计算
- 支持多种类型的基分类器: GBDT只支持CART
- 对特征进行预排序: 能够快速,精确的找到分割点
缺点:
- 内存消耗大: 因为要存储预排序的结果
- 调参困难: 越复杂的模型参数越多
3.LightGBM
优势:(相对于XGBoost)
- 直方图优化: 其实就是一种数据离散化,将数据按照范围进行分箱,是存储空间减小,运算更快,将特征值转化为 b i n bin bin值
- 直方图做差加速: 一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到
- 提出带深度限制的Leaf-wise: 以前主要使用的是按层生长(level-wise),Leaf-wise可以更好的拟合数据,得到更高的精度,但同时也会发生过拟合,因此带有深度限制
- 提出了单边梯度采样算法: 保留 a ∗ 100 % a*100\% a∗100%训练不足的样本 (梯度大的),对小梯度样本采样 b ∗ 100 % b*100\% b∗100%,为了尽可能小的改变样本分布,将小梯度样本的权重扩大 ( 1 − a ) / b (1-a)/b (1−a)/b 。
- 提出了互斥特征捆绑算法: 将稀疏的高维数据进行降维,不丢失信息的同时减少了特征的数量,降低内存消耗
- 直接支持类别特征
缺点:
- 特征被离散化后,找到的不是很精确的分割点,有时会对结果产生影响,但这是一种防止过拟合
- leaf-wise策略可能会过拟合
4.Stacking
- 基本思想: 使用训练数据训练多个模型,然后将多个模型的训练结果作为特征,去训练第二层模型,最后输出结果
- 第二层一般用比较简单的模型,防止模型过拟合。分类用逻辑回归,回归用线性回归
Stacking流程:
- 以XGBoost举例,首先数据分为训练集和测试集。我们采用五折交叉验证的方式,将训练集分为五份,分别拿出其中的一折作为验证集,用于训练模型,同时每次训练好的模型在验证集部分的预测结果将作为最终在训练集上预测结果的1/5。五次组装起来就成了最终对训练集的预测结果。这将用于第二层模型的训练集的一个特征(一列),同时每次训练好的模型都会在测试集上预测,五次的平均值作为第二层模型测试集的一个特征(一列)。
- 其他的模型训练同上,最终第二层模型的训练集就是所有第一层模型训练集的预测结果(有几个模型就有几列)+训练集的真实标签,测试集就是所有第一层模型的测试集的预测结果拼接起来。
Stacking优点
提高模型预测精度: 通过组合多个模型的预测结果,可以获得更准确和稳定的预测结果。Stacking通常比单个模型更准确,因为它可以利用不同模型的优点。因为每个模型都可能注重于不同的特征,通过Stacking可以将这些特征都利用起来,效果可能更好,也有可能变差
减少过拟合风险: 由于Stacking结合了多个模型的预测结果,它通常比单个模型更具有泛化能力,因此过拟合的风险更小
5.leaf-wise和level-wise的区别和特点
- Level-wise:基于层进行生长,直到达到停止条件;
- Leaf-wise:每次分裂增益最大的叶子节点,直到达到停止条件。
XGBoost 采用 Level-wise 的增长策略,方便并行计算每一层的分裂节点,提高了训练速度,但同时也因为节点增益过小增加了很多不必要的分裂,降低了计算量;LightGBM 采用 Leaf-wise 的增长策略减少了计算量,配合最大深度的限制防止过拟合,由于每次都需要计算增益最大的节点,所以无法并行分裂。
Boosting(XGBoost、LightGBM以及CatBoost)相关推荐
- 从xgboost, lightgbm 到catboost
CSDN xgboost 目标函数 O b j t = ∑ j = 1 T ( G j w j + 1 2 ( H j + λ ) w j 2 ) Obj^t= \sum_{j=1}^T(G_jw_j ...
- 大战三回合:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测
作者 | LAVANYA 译者 | 陆离 责编 | Jane 出品 | AI科技大本营(ID: rgznai100) [导读]XGBoost.LightGBM 和 Catboost 是三个基于 GBD ...
- 集成学习模型(xgboost、lightgbm、catboost)进行回归预测构建实战:异常数据处理、缺失值处理、数据重采样resample、独热编码、预测特征检查、特征可视化、预测结构可视化、模型
集成学习模型(xgboost.lightgbm.catboost)进行回归预测构建实战:异常数据处理.缺失值处理.数据重采样resample.独热编码.预测特征检查.特征可视化.预测结构可视化.模型保 ...
- 【机器学习基础】XGBoost、LightGBM与CatBoost算法对比与调参
机器学习 Author:louwill Machine Learning Lab 虽然现在深度学习大行其道,但以XGBoost.LightGBM和CatBoost为代表的Boosting算法仍有其广阔 ...
- XGBoost、LightGBM与CatBoost算法对比与调参
虽然现在深度学习大行其道,但以XGBoost.LightGBM和CatBoost为代表的Boosting算法仍有其广阔的用武之地.抛开深度学习适用的图像.文本.语音和视频等非结构化的数据应用,Boos ...
- xgboost, lightgbm, catboost, 谁才是预言之战的最终赢家?
引子: xgboost,lightgbm和catboost都是非常好用的工具,它们将多个弱分类器集成为一个强分类器.在此对他们使用的框架背景和不同之处做简单的总结. xgboost vs lightg ...
- 树模型:决策树、随机森林(RF)、AdaBoost、GBDT、XGBoost、LightGBM和CatBoost算法区别及联系
一.算法提出时间 1966年,决策树算法起源于E.B.Hunt等人提出. 1979年,Quinlan(罗斯.昆兰)提出了ID3算法,掀起了决策树研究的高潮,让决策树成为机器学习主流算法. 1993年, ...
- 十三、机器学习四大神器之XGBoost、LightGBM、Catboost和NGBoost
前言: XGBoost.LightGBM 和 Catboost 是三个基于 GBDT(Gradient Boosting Decision Tree)代表性的算法实现 GBDT 是机器学习中的一个非常 ...
- catboost和xgboost_算法竞赛开挂神器:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测...
[导读]XGBoost.LightGBM 和 Catboost 是三个基于 GBDT(Gradient Boosting Decision Tree)代表性的算法实现,今天,我们将在三轮 Battle ...
- R︱Yandex的梯度提升CatBoost 算法(官方述:超越XGBoost/lightGBM/h2o)
俄罗斯搜索巨头 Yandex 昨日宣布开源 CatBoost ,这是一种支持类别特征,基于梯度提升决策树的机器学习方法. CatBoost 是由 Yandex 的研究人员和工程师开发的,是 Matri ...
最新文章
- php redis安装使用
- java项目close wait_服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- Java ExecutorService四种线程池的例子与说明
- 主机开启修改BOOT-----支持KVM
- oracle中怎么导外表,ORACLE 自定义类型该如何导入????
- Web.Config介绍
- 接口测试工具-fiddler的运用
- PTA-7-1 输出大写英文字母 (15分)(C语言)
- 数据结构 之 图的存储和遍历
- wscript.exe无法打开vbs_如何恶搞朋友的电脑?超简单的vbs代码
- 8、TypeScript-解构赋值
- 更改主机名后mysql无法启动_主机名变更导致MySql启动失败
- 对话陆奇:用产品思维变革百度工程师文化,欣赏腾讯内部赛马机制
- 从零开始刷Leetcode——数组(830.849.888)
- android简单小游戏开发工具,傻瓜化开发Android小游戏
- 有限元计算计算机配置,关于有限元分析的电脑配置问题
- groovy定义变量获取当前时间_groovy变量 - Groovy教程
- 联想启天 M7150 刷 bios 方法_七夕小子_新浪博客
- 千机智能孙海锋:期待与国际同行在高端制造领域同台竞技(自主可控CAM软件:UltraCAM)
- 全国计算机四级之网络工程师知识点(五)