整合演算法的目的是讓,讓機器學習效果更好,單個不行,群毆走起
有一下集中常見整合學習演算法:
Bagging 訓練多個分類器取平均
Boosting :從弱學習器開始加強,通過加權來進行訓練 ,加入一棵樹,要比原來強 。
Stacking:聚合多個分類或迴歸模型(可以分階段來做)
Bagging模型
其全稱叫做bootstrap aggregation(說白了就是並行訓練一堆分類器) ,最典型的代表就是隨機森林啦 ,所謂隨機就是資料取樣隨機,特徵選擇隨機 。森林就是很多個決策樹並行放在一起。
隨機森林 構造樹模型:
由於二重隨機性,使得每個樹基本上都不會一樣,最終的結果也會不一樣
Bagging模型 樹模型:
之所以要進行隨機,是要保證泛化能力,如果樹都一樣,那就沒意義了!
隨機森林優勢
1、它能夠處理很高維度( feature很多)的資料,並且不用做特徵選擇
2、在訓練完後,它能夠給出哪些feature比較重要
3、容易做成並行化方法,速度比較快
4、可以進行視覺化展示,便於分析
KNN模型:
KNN就不太適合,因為很難去隨機讓泛化能力變強!
樹模型:
理論上越多的樹效果會越好,但實際上基本超過一定數量就差不多上下浮動了 。
Boosting模型
典型代表:AdaBoost, Xgboost
Adaboost會根據前一次的分類效果調整資料權重
解釋:如果某一個資料在這次分錯了,那麼在下一次我就會給它更大的權重
最終的結果:每個分類器根據自身的準確性來確定各自的權重,再合體
Adaboost工作流程
每一次切一刀! 最終合在一起 ,弱分類器這就升級了!
Stacking模型
堆疊:很暴力,拿來一堆直接上(各種分類器都來了) ,可以堆疊各種各樣的分類器( KNN,SVM,RF等等)
分階段:第一階段得出各自結果,第二階段再用前一階段結果訓練
為了刷結果,不擇手段!
堆疊在一起確實能使得準確率提升,但是速度是個問題
整合演算法是競賽與論文神器,當我們更關注於結果時不妨來試試!