机器学习实战--集成学习

集成学习+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,则退出循环

---------------------------------------------------------------------------------------------------

你可能感兴趣的:(机器学习实战--集成学习)