集成算法小结

bagging算法:
自助抽样样本,
T个弱学习器中选择投票数最高的(分类)
T个弱学习器分别得到的回归结果进行算术平均得到的值(回归)

random forest: bagging算法进化
自助抽样,弱学习器:cart树
随机选择样本特征,增加泛化能力
T个弱学习器中选择投票数最高的(分类)
T个弱学习器分别得到的回归结果进行算术平均得到的值(回归)
优点小结(先记这几个,再补充)
1.抗噪声能力强2.属性抽样,样本抽样,增加泛化性,不容易过拟合3.训练速度快,4.能过处理高维度数据5.数据适应能力强,对缺失数据,非平衡数据也比较稳定
但是,在噪声较大的问题上容易过拟合。

adaboost
见链接:https://blog.csdn.net/unixtch/article/details/77846141
非自助抽样样本,初始化权重,弱学习器
用学习器误差率更新学习器权重
用样本误差率更新样本权重
平均加权法得到最终分类模型
平均加权法得到最终回归模型
损失函数:指数损失
优点:1.分类精度高
2.支持各回归分类模型来构建学习器,灵活方便
3.不容易过拟合
4.构造简单
缺点:对异常样本敏感

gdbt

  • gbdt中的树都是回归树,不是分类树
    非自助抽样样本,学习器(cart),每个分类器基于上一轮分类器的残差做训练— 需要累加所有的树结果,所以只能通过回归来完成。
    原18岁,预测12岁, 负梯度认为6岁(残差)
    6岁来拟合,得到3岁,12+3岁=15岁,6-3=3,负梯度认为3岁
    3岁来拟合,得到2岁,15+2=17岁,3-2=1,负梯度认为1岁…
    (常见损失函数,对数损失,0-1损失,平方损失等)
    构造损失函数,求负梯度,用其值拟合一颗回归树(cart)(近似残差),更新损失函数,更新分类器
    最终分类器,所有弱分类器加权求和得到
    注意: gbdt 只用到了一阶导数信息(只求一次导数)
    集成算法小结_第1张图片
    优缺点:
    1.非线性变换多,表达能力强,不需要做复杂的特征工程,特征变化
    2.灵活处理各种类型数据(离散,连续)
    3.使用一些健壮的损失函数,如 huber,对异常值的鲁棒性非常强
    缺点:
    学习器间存在依赖关系,难以并行训练数据,计算复杂度高,不适合高维度洗漱特征

xgboost:
与gbdt区别:
1.泰勒展开式(使用了二阶导数)
代价函数中进行了二阶泰勒展开
目标函数=损失函数+惩罚项
损失函数可变换为前一项的累积形式。

集成算法小结_第2张图片

再变为泰勒展开式,如下:
集成算法小结_第3张图片

集成算法小结_第4张图片

在这里插入图片描述

集成算法小结_第5张图片

在这里插入图片描述
所以
在这里插入图片描述
2.loss中加入了正则
3.进行分裂时,需要计算每个特征的增益,选择增益最大的那个特征去分裂。(而不是计算最小化均值方差),所以各个特征的增益计算可以开多线程进行。
4.xg的学习器也可以是线性分类器
5.随机抽样,特征稀疏性
6.数据事先排序并且以block形式存储,后面迭代中重复用这个block结构,大大减小计算量。有利于并行计算
7.对缺失值的处理,对于特征的值有缺失的样本,xgboost可以自动学习出它的分裂方向。
8.shrinkage(缩减),相当于学习速率。xgboost在进行完一次迭代时,将叶子节点的权重乘上该系数,削弱每棵树的影响,让后面有更大学习空间。(gbdt也有学习率)
lgbm
优点:速度更快,内存消耗更低
xgboost: 基于 预排序方法,决策树方法
(对所有特征排序,遍历时,用0(n)代价找到最好分割点)–空间消耗大,时间消耗大
lgbm: 1.基于histogram(直方图)决策树算法
2.带深度限制的leaf-wise的叶子生长策略
3.直方图做差加速
4.支持类别特征
5.cache访问优化,多线程优化,多稀疏特征优化等
6.支持高效并行

你可能感兴趣的:(机器学习之Python语言基础)