机器学习的集成算法是指的多个单一算法集成在一起,使得机器学习的效果更好。
集成算法包含
Bagging-----bootstrap aggregation
①从样本集中重采样(有重复的)选出n个样本
②在所有属性上,对这n个样本建立分类器(ID3、 C4.5、 CART、 SVM、 Logistic回归等)
③重复以上两步m次,即获得了m个分类器
④将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类
Bagging就像是“民主政治”----少数服从多数
典型的算法是--(Bagging+决策树=随机森林)
随机森林: 从样本集中采样选出n个样本;
从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;
重复以上两步m次,即建立了m棵CART决策树
这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类
所以随机森林是样本采样的随机,还有对特征随机的获取使用。
需要说明的是,Bagging算法是多种分类器并行执行的。
Boosting-----从弱学习器开始加强,通过加权来进行训练
Boosting就像是“精英政治”,不同的人,说话的分量不一样~
典型的算法是--Adaboosting Xgboost
而对比Bagging,Boosting算法是多种分类器串行执行的,比如3个分类器G1,G2,G3,其中G1的效果是最好的,依次是G2,G3。那我们选择G1当做一个分类器加入的Boosting算法中,当前这个G1也会有误差,之后,带着这些误差和G1的结果,我们在G1后加入分类效果第二好的G2。最后在加入G3。这样串行的进行Boosting算法,最终的到结果。
Stacking------聚合多个分类或回归模型(可以分阶段来做)
堆叠:很暴力,拿来一堆直接上(各种分类器都来了),可以堆叠各种各样的分类器(KNN,SVM,RF等等)
分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练。为了刷结果,不择手段!
之后具体的代码将在后续文章中更新。