机器学习集成算法总结

一.Voting
思想:选取多个分类器,少数服从多数

二.Bagging
特点: 放回抽样
方法:
1.放回抽样训练集
2.Outofbagging:放回抽样中总有一部分数据没被抽到,可将这部分作为验证集
3.随机采样特征
4.随机采样特征+随机采样训练集,如随机森林
随机森林
优点

可处理高位数据且不用做特征选择
能够计算特征重要性
泛化能力好
训练速度快
缺点
在某些噪音较大的问题上容易过拟合
对不同取值的属性的数据,取值划分范围较广的属性对随机森林会有更大的影响
随机森林若在特征划分值上也随机的话,变成Extratrees

三.Boosting
1.Adaboost
思想:重视上一轮犯错误的样本,下一轮给他们更高的权重,且误差小的分类器会有更大的权重。
优点
可以将不同的分类算法作为弱分类器
精度高
从发考虑每个分类器的权重
缺点
迭代次数即弱分类器数目不好确定,交叉验证
数据不平衡
训练耗时

2.Gbdt
思想:GBDT 是以决策树为基学习器、采用 Boosting 策略的一种集成学习模型
与提升树的区别:残差的计算不同,提升树使用的是真正的残差,梯度提升树用当前模型的负梯度来拟合残差。简单点说,就是先预测一个决策树模型,基于这一轮残差再去学习一个新的模型,并把他们合并从而更接近真实值
优点
灵活处理各种类型数据,包括离散和连续
在相对少调参的时间,准确率也比较高
缺点
难以并行处理

3.Xgboost
gbdt的进化版本
传统的GBDT以CART树作为基学习器,XGBoost还支持线性分类器
传统的GBDT在优化的时候只用到一阶导数信息,XGBoost则对代价函数进行了二阶泰勒展开,得到一阶和二阶导数
XGBoost在代价函数中加入了正则项,用于控制模型的复杂度。这也是XGBoost优于传统GBDT的一个特性
shrinkage(缩减),相当于学习速率(XGBoost中的eta)。XGBoost在进行完一次迭代时,会将叶子节点的权值乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间
列抽样。XGBoost借鉴了随机森林的做法,支持列抽样,不仅防止过拟合,还能减少计算
XGBoost支持并行

四.Stacking
思想:将训练集划分成K个子集,在K-1折训练集上训练不同的弱学习器,然后用相应的弱学习器预测剩下的第K个子集从而得到相应的输出,根据这些相应的输出和标签构成行的训练集训练得到最终的学习器。

猜你喜欢

转载自blog.csdn.net/huipingx/article/details/85036812