| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 随机森林RF、GBDT、XGBoost的区别 -> 正文阅读 |
|
[数据结构与算法]随机森林RF、GBDT、XGBoost的区别 |
1. 随机森林1.1 定义RF是一个用随机方式建立的,包含多个决策树的集成分类器,其输出类别由各个树投票而定(回归树取平均)。 1.2 生成过程假设样本总数为n,特征数为a。
1.3 优点
1.4 缺点
2. 梯度提升树GBDT2.1 定义是以决策树(回归树)为基学习器的迭代算法。一般boosting算法都是一个迭代过程,每一次的训练都是为了改进上一次的结果。 核心:每一棵树学习的是之前所有树结论和的残差。 2.2 优点
2.3 缺点
2.4 GBDT与RF的区别bagging与boosting都来源于Booststrap思想(有放回抽样)。
3. XGBoost3.1 定义XGB是大规模、分布式的通用梯度提升(GBDT)库,它在GB框架下实现了GBDT和一些广义线性ML算法。 3.2 特点1. 还支持线性分类器
2. 对损失函数进行二阶泰勒展开 GBDT优化时只用到一阶导数信息;而XGB优化时同时用到一阶、二阶导数信息。 XGB还支持自定义的代价函数,但次代价函数需要一阶、二阶可导。 3. XGB在代价函数中加入了正则项,用于控制模型复杂度 正则项中包含了树的叶子结点个数、每个叶子结点上输出的score的L2模的平方和。 从平衡方差、偏差角度来看,降低了方差,使学习出来的模型更加简单,防止过拟合。 这是XGB优于GBDT的一个特性。 4. XGB的权重衰减(eta shrinkage)????? <=> XGB在进行完一次迭代后,会将叶子结点的权重*该系数,主要是为了削弱每棵树的影响,让后面的树有更大的学习空间(给后面的树提供空间优化模型)。 一般把eta设置越小,迭代次数越多。 5. XGB支持列抽样 借鉴了RF的做法,支持列抽样,不仅能降低过拟合,还能减少计算。 对缺失值处理(对特征有缺失的样本,可自动学习出它的分裂方向)。 列抽样防止过拟合的效果比行抽样还好,也有利于后面的并行化处理算法。 这也是XGB优于GBDT的一个特性。 6. 支持并行 不是树粒度的并行,(XGB也是一次迭代完才进行下一次迭代的,第t次迭代的代价函数里面包含了前面t-1次迭代的预测值),而是特征粒度上的。 DT学习最耗时的一个步骤就是对特征值进行排序(确定最佳分割点),xgb在训练前预先对数据进行了排序,并保存为block结构,之后的迭代中重复使用之,大大减少了计算量。 在进行结点的分裂时,需要计算每个特征的增益,最终选择增益最大的那个特征去做分裂,这样,各个特征增益的计算就可以多线程进行。 7. 内置交叉验证 接着已有模型学习,高灵活性、高速缓存压缩感知算法。 8. 切分点查找算法
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:19:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |