单个弱分类器(比如感知器、决策树)一般预测结果并不好。如果将多个弱分类器加权组合,对于新的预测,多个弱分类器根据各自的权值投票,得票最多的结果作为预测结果。这样的效果往往优于单个分类器。
Aggregation
含义
多个弱分类器通过一定的方式组合成一个强分类器。
疑问
每个弱分类器的训练数据是什么样的呢?
每个分类器不可能全部都用完整的训练数据(这样的话每个弱分类器都是相同的了)。如果按照分类器的数量等分训练数据,每个弱分类器训练一部分数据,万一数据有杂讯,最终结果就容易受影响。比较好的解决方法是引入 Bootstrap .
Bootstrap
定义
从N条样本数据中,等比例有放回的抽取N次数据组成新的数据集。
特点
- 很好的解决了训练多个弱分类器时训练样本不够的问题
- 每条数据约有 66% 的概率被选入新数据集,也就是说新训练数据约包含原训练数据的 66% 。
Bagging
定义
对于K个弱分类器,每个分类器使用 Bootstrap 出的训练数据,然后做相同权值投票。
Boosting
定义
Boosting是一种思想,得到不同的样本子集,通过不同的样本子集可以得到不同的弱分类器。按照一定的方法对多个弱分类器进行加权融合,最后结果是弱分类器加权投票的结果。
AdaBoost
定义
每条训练数据都有一个权值。使用训练数据训练得弱分类器gi(),更新每条数据的权值(增大分类错误的数据的权值,减小分类正确的权值),计算gi()分类器的权值(与分类正确的数据的权值和有关)。再用更新后的训练数据权值训练得弱分类器gi+1(),以此类推。预测结果是多个弱分类器加权投票的结果。