我们学过决策树、朴素贝叶斯、SVM、K近邻等分类器算法,他们各有优缺点;自然的,我们可以将这些分类器组合起来成为一个性能更好的分类器,这种组合结果被称为 集成方法 (ensemble method)或者 元算法 (meta-method)。使用集成算法时有多种形式:
不同算法的集成
同一种算法在不同设置下的集成
数据集不同部分分配 给不同分类器之后的集成
1、bagging 和boosting综述
bagging 和boosting中使用的分类器类型都是一样的,即上述第二种形式。
bagging,也称为自举汇聚法(boostrap aggegating) 是在原始数据集中有放回的选择S次后得到S个新数据集的一种技术。新数据集和原数据集大小相等,但是有可能某一条数据被选择了好几次,而原数据集中某些数据在新数据集中可能不出现。在S个数据集建好之后,将某个算法分别作用于每个数据集就得到S个分类器。对新数据集进行分类时,就用这S个分类器进行分类,与此同时,选择分类器投票结果中最多的的类别作为最终分类结果,如图1所示。Random Forests是一种更先进的bagging算法,下文详细介绍。
boosting 与bagging很类似,不同的是Boosting是通过串行训练而获得的,而每个新分类器都是根据已经训练好的分类器的性能来进行训练的。AdaBoost是这一种常用的boosting方法。