一,、集成算法
目的:讓機器學(xué)習(xí)效果更好,,單個機器學(xué)習(xí)算法不行,就用多個機器算法集成。
Bagging模型:訓(xùn)練多個分類器取結(jié)果的平均
Boosting模型:從弱學(xué)習(xí)器開始加強,,通過加權(quán)來進行訓(xùn)練(加入一棵樹,,要比原來強)
Stacking模型:聚合多個分類或回歸模型(可以分階段來做)
二、Bagging模型:
全稱: bootstrap aggregation(說白了就是并行訓(xùn)練一堆分類器),,最典型的代表就是隨機森林(決策樹的升級版,,多個決策樹組合起來)
隨機: 數(shù)據(jù)采樣隨機,特征選擇隨機 (可以命名為二重隨機性)
森林:很多個決策樹 并行 放在一起
在隨機森林模型中,,如果是分類任務(wù),,那就對結(jié)果取眾數(shù)(如上圖所示),如果是預(yù)測任務(wù),,就對結(jié)果取平均值,。
構(gòu)造樹模型:
由于二重隨機性,使得每個樹基本上都不會一樣,,最終的結(jié)果也會不一樣,。 之所以要進行隨機,是要保證泛化能力,,如果樹都一樣,,那么最終結(jié)果就都是一樣的,那就沒意義了,!
隨機森林相比于決策樹優(yōu)勢:
(1)它能夠處理很高維度(feature很多)的數(shù)據(jù),,并且不用做特征選擇。
(2)在訓(xùn)練完后,,它能夠給出哪些feature比較重要,,比如在下圖中特征重要性最低的三個特征就可以去掉。
(3)容易做成并行化方法,,速度比較快,。
(4)可以進行可視化展示,便于分析,。
理論上越多的樹訓(xùn)練的效果就會越好,,但實際上基本超過一定數(shù)量最終的效果就差不多上下浮動了。
三,、Boosting模型
典型代表:AdaBoost,, Xgboost。
Adaboost會根據(jù)前一次的分類效果調(diào)整數(shù)據(jù)權(quán)重,,如果某一個數(shù)據(jù)在這次分錯了,,那么在下一次我就會給它更大的權(quán)重。最終的結(jié)果:每個分類器根據(jù)自身的準(zhǔn)確性來確定各自的權(quán)重,,再合體,。
Adaboost工作流程:每一次切一刀!最終合在一起,弱分類器這就升級了,!
四,、Stacking模型
堆疊方式:很暴力的那種,拿來一堆直接上(各種分類器都來了),,可以堆疊各種各樣的分類器(KNN,SM,RF,DT等等)
Stacking是一種分層模型集成框架,。以兩層為例,第一層由多個基學(xué)習(xí)器組成,,其輸入為原始訓(xùn)練集,,第二層的模型則是以第一層基學(xué)習(xí)器的 輸出 作為訓(xùn)練集進行再訓(xùn)練,從而得到完整的stacking模型,。
分階段:第一階段得出各自結(jié)果,,第二階段再用前一階段結(jié)果訓(xùn)練 。
堆疊在一起確實能使得準(zhǔn)確率提升,,但是顯然速度是個問題,。 集成算法是競賽與論文神器,當(dāng)我們更于結(jié)果時不妨來試試,!