| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 机器学习知识点梳理3--集成学习/Adaboost/随机森林/GBDT/xgBoost/LightGBM -> 正文阅读 |
|
[人工智能]机器学习知识点梳理3--集成学习/Adaboost/随机森林/GBDT/xgBoost/LightGBM |
1.LightGBM和xgBoost、GBDT的区别xgboost与LightGBM的区别
xgBoost、GBDT的区别
2.xgBoost的block结构在树生成过程中,最耗时的一个步骤就是在每次寻找最佳分裂点时都需要对特征的值进行排序。而?XGBoost?在训练之前会根据特征对数据进行排序,然后保存到块结构中,并在每个块结构中都采用了稀疏矩阵存储格式(Compressed Sparse Columns Format,CSC)进行存储,后面的训练过程中会重复地使用块结构,可以大大减小计算量。 作者提出通过按特征进行分块并排序,在块里面保存排序后的特征值及对应样本的引用,以便于获取样本的一阶、二阶导数值。具体方式如图: ?通过顺序访问排序后的块遍历样本特征的特征值,方便进行切分点的查找。此外分块存储后多个特征之间互不干涉,可以使用多线程同时对不同的特征进行切分点查找,即特征的并行化处理。在对节点进行分裂时需要选择增益最大的特征作为分裂,这时各个特征的增益计算可以同时进行,这也是 XGBoost 能够实现分布式或者多线程计算的原因。 3.xgBoost的优缺点优点
缺点
4.集成学习 Bagging BoostingBagging?是 bootstrap aggregation的缩写。bagging对于数据集进行bootstrap取样,每个数据点有同等几率被采样,然后创建n个模型,每个模型进行m个数据采样,最后进行投票(voting)得出最后结果。Bagging 的典型应用是随机森林 boosting创建了一系列预测器,或者说是学习器。前面的学习器用简单的模型去适配数据,然后分析错误。然后会给予错误预测的数据更高权重,然后用后面的学习器去修复。boosting通过把一些弱学习器串起来,组成一个强学习器。boosting的典型应用是Adaboost 5.RF和GBDT的区别RF与GBDT之间的区别 (1)相同点
(2)不同点
6.GBDT是否适合于处理大规模的ID特征GBDT对于海量的id类特征,GBDT由于树的深度和树的数量限制(防止过拟合),不能有效存储;另外海量特征也会存在性能瓶颈,当GBDT的one hot特征大于100k维时,需要做分布式训练才能保证不爆内存,因此,GBDT通常配合少量的反馈CTR特征来表达,在带来一定范化能力的同时会有信息损失,对于头部资源无法有效表达。 7.LightGBM的直方图 排序后会比xgboost的效果差吗,为什么
所以如果LightGBM的直方图排序后,最优的分割点就变了,效果可能会比xgboost差。 8.xgboost正则化项和什么有关正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和 9.随机森林哪两个随机2个随机(bootstrap+特征m)
10.bootstrap怎么做的Bootstrap是一种抽样方法,即随机抽取数据并将其放回。如一次抽取一个样本,然后放回样本集中,下次可能再抽取这个样本。 11.xgboost缺失值处理方法论文中关于缺失值的处理将其看与稀疏矩阵的处理看作一样。在寻找split point的时候,不会对该特征为missing的样本进行遍历统计,只对该列特征值为non-missing的样本上对应的特征值进行遍历,通过这个技巧来减少了为稀疏离散特征寻找split point的时间开销。在逻辑实现上,为了保证完备性,会分别处理将missing该特征值的样本分配到左叶子结点和右叶子结点的两种情形,计算增益后选择增益大的方向进行分裂即可。可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率。如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子树。 12.为什么xgboost要二阶展开?
13.xgboost 如果损失函数没有二阶导,该怎么办gbdt的目标函数与xgboost区别就是带不带正则项(算法内容上)。gbdt对损失函数的优化是直接使用了损失函数的负梯度,沿着梯度下降的方向来减小损失,其是也就是一阶泰勒展开。而xgboost在这里使用了二阶泰勒展开,因为包含了损失函数的二阶信息,其优化的速度大大加快。但如果loss没有二阶导数,就使用一阶导数优化 14.GBDT的G梯度的向量长度为多少样本数 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/27 0:39:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |