作者:JSong,日期:2017.10.10
簡書一直不肯支持數學公式,沒辦法,只能截圖啦。原文請移步博客園
集成學習(ensemble learning)通過構建并結合多個學習器來完成學習任務,常可獲得比單一學習器顯著優越的泛化性能,這對“弱學習器”尤為明顯。
目前,有三種常見的集成學習框架:bagging,boosting和stacking。第一種是并行的,各個基學習器之間不存在強依賴關系,代表是隨機森林算法。后兩者是串行的,基學習器之間存在強依賴關系,必須串行生成。具體可參見我的文章 機器學習|集成學習。
1、前向分步算法(forward stagewise algorithm)
算法(前向分步算法):
2、AdaBoost算法
前向分布算法是一種算法的框架,接下來我們對于二分類問題構造一個具體的boosting算法。
注:此時的 $e_{m}$ 與 $\gamma_{m}$ 的極小化函數完全等價,又注意到 $w_{mi}$ 和為1,所以不妨把 $\gamma_{m}$ 的極小化函數修改為 $e_m$, 這個意義下 $e_m$ 即是基函數的分類誤差率。
注意到,這個時候事實上并不需要參數 $\gamma$ 的顯示存在,其隱形的存在于每個基函數的訓練時使用的損失函數中,更進一步,其代表了每個樣本的權重。通俗點講,算法在串行迭代過程中,那些分類不準確的樣本點在下一步的基分類模型中是會被重點照顧。
最后我們把上述過程整理成Adaboost算法
算法(Adaboost算法):
3、Gradient Boosting
一條不一樣的路,待續