集成方法(ensemble method)又叫元算法(meta-algorithm):将不同的分类器组合起来。
通俗的说:就是三个臭皮匠赛过诸葛亮。做决定时,考虑多个人的意见,不是一个人的意见
集成方法:
1. bagging(自举汇聚法):基于数据随机重抽样的分类器构建方法。并行算法
2. boosting(再学习):基于所有分类器的加权求和的方法。 串行算法。
bagging:从原始数据集选择S次后得到S个新数据集的一种技术。新数据集和原数据集的大小相等。
其实就是有放回采样,获得一个和原来大小一样的新数据集。这个新数据集可能会有重复值,原始数据集的某些值在新数据集中可能不在出现。
用这样的方法构建S个新的数据集参与训练,就会得到S个分类器。测试新数据时,送到S个分类器里,得到的结果投票,数量最多的就是分类结果(得民心者得天下)。
boosting:串行训练。第一个训练完,第二个在第一个的基础上接着训练。重点关注前面分类器错分的数据(说白了就是背锅侠,前面哥们犯的错,后面的去解决)。
目前 bagging 方法最流行的版本是: 随机森林(random forest)
选男友:美女选择择偶对象的时候,会问几个闺蜜的建议,最后选择一个综合得分最高的一个作为男朋友目前 boosting 方法最流行的版本是: AdaBoost
追女友:3个帅哥追同一个美女,第1个帅哥失败->(传授经验:姓名、家庭情况) 第2个帅哥失败->(传授经验:兴趣爱好、性格特点) 第3个帅哥成功bagging和boosting共同点和差异点:
- bagging 是一种与 boosting 很类似的技术, 无论是boosting还是bagging,所使用的多个分类器的类型(数据量和特征量)都是一致的(就是说要用KNN,都用KNN,要用决策树,那就都用决策树)。
- bagging 是由不同的分类器(1.数据随机化 2.特征随机化)经过训练,综合得出的出现最多分类结果;boosting 是通过调整已有分类器错分的那些数据来获得新的分类器,得出目前最优的结果。
- bagging 中的分类器权重是相等的;而 boosting 中的分类器加权求和,所以权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。(就是说bagging投票是一人一票,权重相等。而boosting权重不等,可能有的权重大,有的权重小)