集成算法小结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lulujiang1996/article/details/82220863

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),每个分类器基于上一轮分类器的残差做训练
(常见损失函数,对数损失,0-1损失,平方损失等)
构造损失函数,求负梯度,用其值拟合一颗回归树(cart)(近似残差),更新损失函数,更新分类器
最终分类器,所有弱分类器加权求和得到
这里写图片描述
优缺点:
1.非线性变换多,表达能力强,不需要做复杂的特征工程,特征变化
2.灵活处理各种类型数据(离散,连续)
3.使用一些健壮的损失函数,如 huber,对异常值的鲁棒性非常强
缺点:
学习器间存在依赖关系,难以并行训练数据,计算复杂度高,不适合高维度洗漱特征

xgboost:
与gbdt区别:
1.泰勒展开式(使用了二阶导数)
2.loss中加入了正则
3.寻找分割点方法由 最小化均方差变为 最大化
4.xg的学习器也可以是线性分类器
5.随机抽样,特征稀疏性
6.数据事先排序并且以block形式存储,有利于并行计算
lgbm
优点:速度更快,内存消耗更低
xgboost: 基于 预排序方法,决策树方法
(对所有特征排序,遍历时,用0(n)代价找到最好分割点)–空间消耗大,时间消耗大
lgbm: 1.基于histogram(直方图)决策树算法
2.带深度限制的leaf-wise的叶子生长策略
3.直方图做差加速
4.支持类别特征
5.cache访问优化,多线程优化,多稀疏特征优化等
6.支持高效并行

猜你喜欢

转载自blog.csdn.net/lulujiang1996/article/details/82220863