【機器學習】集成學習原理

集成思想主要分爲兩大流派,Boosting一族通過將弱學習器提升爲強學習器的集成方法來提高預測精度(典型算法爲AdaBoost,詳見Learn R | AdaBoost of Data Mining);而另一類則爲Bagging,即通過自助採樣的方法生成衆多並行式的分類器,通過“少數服從多數”的原則來確定最終的結果(典型算法爲隨機森林,詳見Learn R | Random Forest of Data Mining)。

boosting翻譯過來就是提升的意思,通過研究如果將多個弱分類器集成在一起提升爲一個強分類器就是多數boosting算法所研究的內容。其中最爲經典的算法就是Adaboost,gdbt,xgboost等算法

xgboost對loss func做了二階的泰勒展開,並在目標函數之外加入了正則項整體求最優解,用以權衡目標函數的下降和模型的複雜程度,避免過擬合。

集成學習的思路是通過合併多個模型來提升機器學習性能,這種方法相較於當個單個模型通常能夠獲得更好的預測結果。這也是集成學習在衆多高水平的比賽如奈飛比賽,KDD和Kaggle,被首先推薦使用的原因。

一般來說集成學習可以分爲三大類:

  • 用於減少方差的bagging
  • 用於減少偏差的boosting
  • 用於提升預測結果的stacking

集成學習方法也可以歸爲如下兩大類:

串行集成方法,這種方法串行地生成基礎模型(如AdaBoost)。串行集成的基本動機是利用基礎模型之間的依賴。通過給錯分樣本一個較大的權重來提升性能。

並行集成方法,這種方法並行地生成基礎模型(如Random Forest)。並行集成的基本動機是利用基礎模型的獨立性,因爲通過平均能夠較大地降低誤差。
大部分集成模型都通過一個基礎學習算法來生成一個同質的基礎學習器,即同類型的學習器,也叫同質集成。

有同質集成就有異質集成,爲了集成後的結果表現最好,異質基礎學習器需要儘可能準確並且差異性夠大。

參考:
機器學習集成學習–bagging、boosting、stacking

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章