机器学习实战--集成学习
集成学习+adaboost
在做出重要决定时,大家会吸取多个专家而不是一个人的意见
这就是元算法背后的思路
元算法是对其他算法进行组合的一种方式。元算法也叫做集成方法。
可以是不同算法的的集成,可以是同一种算法在不同设置下的集成,还可以是数据集不同部分分配给不同分类器之后的集成
---Bagging:基于数据随机冲抽样的分类器构建方法
自举汇聚法(bootstrap aggregating),也称bagging。
1. 在从原始数据集选择S次后得到S个新数据集的一种技术。新数据集的原始数据集大小相等。允许新数据集中有重复值
2. 在S个数据集建好后,将某个学习算法分别作用于每个数据集就得到了S个分类器。
3. 当我们对新数据进行分类时,就用这S个分类器进行分类,与此同时,分类器投票结果最多的类别作为最终结果
比如RF随机森林就是采用bagging的思想,并作了一定的改进。
---Boosting
boosting所使用的多个分类器的类型都是一致的,并且是通过串行训练获得的,每个新分类器都是根据已经训练出的分类器的性能来进行训练。boosting是通过集中关注被已有分类器错分的那些数据获得新的分类器。
boosting的分类结果是基于所有分类器的加权就和。bagging中分类器的权重是相等的,而boosting的分类器权重并不相等。
boosting有很多版本,流行的是adaboost,和gbdt
整个实现的伪代码如下:
对每次迭代:
利用buildStump()函数找到最佳的单层决策树
将最佳单层决策树加入到单层决策树数组
计算alpha
计算新的权重向量D
更新累计类别估计值
如果错误率等于0.0,则退出循环
---------------------------------------------------------------------------------------------------