GBDT/xgboost总结
bagging和boosting
bagging和boosting是模型集成的两种方式,可以将很多弱分类器融合成一个强分类器
bagging:采用有放回的均匀采样,基分类器之间不存在依赖关系,可以并行处理,通过投票表决的方式来确定结果
boosting:根据错误率来进行采样,基分类器之间存在依赖关系,各棵树之间是串行的,后面的分类器在拟合前面结果的残差。通过将每棵树的结果累加来决定最终的结果。boosting开始对所有的样本赋予相同的权重,在每次训练结束后,对失败的样本赋予较大的权重,boosting训练集的采样和上一轮的训练结果有关。
偏差 & 方差、
泛化误差:偏差+方差+噪声
偏差:采样大小为m的训练数据,训练得到所有模型输出的平均值和真实模型的输出值之间的差距,描述的是模型输出结果的期望和样本真实结果的差距
方差:采样大小为m的训练数据,由不同训练集训练出的模型输出之间的差距。
偏差,方差和bagging,boosting的关系
bagging是对训练样本进行采样,得到不同的训练子集,然后通过不同的训练子集得到多个分类器,然后取这些分类器的平均,实在降低模型的方差。
boosting是迭代算法,后面的在拟合前面结果的残差,是在降低模型的偏差。
如何衡量一颗树很好?目标函数
以xgboost为例,在构造每棵树的过程中,我们可以计算出目标函数的最小值,然后以这个最小值为准则来递归构建树的每一层节点。
GBDT和随机森林的区别
1.随机森林可以由回归树或分类树组成,GBDT只能由回归树组成
说明随机森林可以选择ID3树,C4.5或CART,而GDBT只能选择CART树,这是由于CART树的输出是一个分数,有助于优化算法
2.随机森林是有放回的均值采样,GBDT根据错误率来赋予权重的采样
3.随机森林的结果是通过投票表决的,GBDT的结果是将多颗树的结果累加确定的
4.随机森林对异常值不敏感,GBDT对异常值非常敏感
5.随机森林中的树是并行生成的,GBDT中的树是串行生成的
6.随机森林是通过减小模型方差来提高性能,GBDT是通过减小模型的偏差来提高性能。
很多区别都在说bagging和boosting的区别
xgboost
通过泰勒公式化简后的目标函数: o b j = ( ∑ i n g i ) w j + 1 2 ( ∑ i n h i ) w j 2 + r T obj=(\sum_i^n g_i)w_j+\frac{1}{2}(\sum_i^nh_i)w_j^2+rT obj=(∑ingi)wj+21(∑inhi)wj2+rT
通过求梯度我们可以找到最小的目标函数,构建第t颗树,计算Gain找到最好的分割点。
构建过程:
根据每一个特征对训练数据进行排序,保存为block结构,有多少个特征就有多少个block
在每个block内,根据目标函数下降最大,选择每个特征的最佳切割点,每个样本都计算出 g i , h i g_i,h_i gi,hi,然后通过找不同的切割点,计算出 G L , G R G_L,G_R GL,GR,然后计算出Gain,看Gain的正负看值不值得切分。
根据目标函数下降最大,选择最佳的特征分割点
GBDT和XGBOOST的区别:
1.GBDT是机器学习算法,xgboost是算法的工程实现
2.GBDT对损失函数的残差进行了一阶泰勒展开,xgboost进行了二阶泰勒展开
3.xgboost对目标函数加入了正则化项,控制了模型的复杂度,缓解了模型过拟合的现象
4.GBDT的基分类器只能选择CART树,xgboost还支持其他分类器
xgboost的并行化表现在在构建每颗树的时候,对于不同的特征,xgboost在不同的线程中去分裂,并选择收益最大的特征分割点
GBDT/xgboost总结相关推荐
- 机器学习时代的三大神器:GBDT,XGBOOST和LightGBM
来源:https://blog.csdn.net/bbbeoy/article/details/79590981 本文主要简要的比较了常用的boosting算法的一些区别,从AdaBoost到Ligh ...
- gbdt xgboost 贼难理解!
https://www.zybuluo.com/yxd/note/611571 https://zhuanlan.zhihu.com/p/29765582 gbdt 在看统计学习方法的时候 理解很吃力 ...
- 【基础算法】 GBDT/XGBoost 常见问题
原文作者:Jack Stack 原文:https://zhuanlan.zhihu.com/p/81368182 在非深度学习的机器学习模型中,基于GBDT算法的XGBoost.lightgbm等有着 ...
- 机器学习实战:GBDT Xgboost LightGBM对比
Mnist数据集识别 使用Sklearn的GBDT GradientBoostingClassifier GradientBoostingRegressor import gzip import pi ...
- 【算法】GBDT XGBoost
一.GBDT GDBT(Gradient Boosting Decision Tree)是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终结果.它在被提出之初就和SVM一起被认 ...
- GBDT+XGBoost算法详解(下):XGBoost
4.XGBoost XGBoost,eXtreme Gradient Boosting,极端梯度提升.它用二阶泰勒展开式去近似损失函数,然后通过让损失函数最小化,来求出最优的树结构以及叶子节点的值. ...
- GBDT Xgboost LightGBM区别与联系
https://www.cnblogs.com/mata123/p/7440774.html
- gbdt 回归 特征重要性 排序_RandomForest、GBDT、XGBoost、lightGBM 原理与区别
RF,GBDT,XGBoost,lightGBM都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果来改善基本学习器的泛化能力和鲁棒性. 根据基本学习器 ...
- XGBoost Plotting API以及GBDT组合特征实践
XGBoost Plotting API以及GBDT组合特征实践 写在前面: 最近在深入学习一些树模型相关知识点,打算整理一下.刚好昨晚看到余音大神在Github上分享了一波 MachineLearn ...
最新文章
- 微信小程序web-view能发送ajax,微信小程序web-view组件的坑
- delve 调试带参数_带你学够浪:Go语言基础系列-环境配置和 Hello world
- Java管理商品信息
- 实验一 软件工程准备
- 【Vue案例一】实现跑马灯效果
- IOS CopyPNGFile 异常问题解决
- QT 用QAudio语音库实现音频信号的采集 以及发送到另一台电脑 播放
- 判断mysql指定数据库指定表是否存在的SQL语句
- 精确搜索linux日志,Linux 日志查询 - 精确详细
- 7-6 愿天下有情人都是失散多年的兄妹 (25分)
- shell脚本括号使用
- AccessibilityService——实现微信切换账号功能
- ThinkPHP6.0 Session 问题
- 赵小楼《天道》《遥远的救世主》深度解析(135)观念,传统观念,传统观念有没有用取决于观念,而不在传统
- iOS ☞ SDWebimage 内存暴增问题
- java Web 前后端交互
- python解一元二次方程ax^2+bx_python 练习题:定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程ax^2+bx+c=0的两个解...
- postgresQL通过出生日期获取年龄
- 文献阅读:DeepLigand: accurate prediction of MHC class I ligands using peptide embedding
- nc系统搜索服务器失败怎么办,nc: invalid option — ‘e’错误解决办法 linux系统启动weblogic受管服务器报un...
热门文章
- 当食品安全遇上“区块链”
- 实验十九 Spark实验:GraphX
- 星软车联显示服务器未返回gps,营口GPS——星软GPS车辆监控系统功能(一)
- 海信IP103H-S905L3-B-5621DS安卓9.0线刷包(内蒙古移动)
- 【花雕体验】02 行空板简单使用
- Dapper入门教程
- AU cc2022 Win如何成功安装不闪退 Audition 2022安装包安装方法 新版本功能介绍
- Cisco c3560三层交换机配置
- kali安装python gui_黄聪:史上最详细的kali安装教程没有之一
- unity 简易枪支射击