概述
Boosting基本思想: 通過改變訓練數據的概率分布(訓練數據的權值分布),學習多個弱分類器,並將它們線性組合,構成強分類器。
Boosting算法要求基學習器能對特定的數據分布進行學習,這可通過“重賦權法”(re-weighting)實施。對無法接受帶權樣本的基學習算法,則可通過“重采樣法”(re-sampling)來處理。若采用“重采樣法”,則可獲得“重啟動”機會以避免訓練過程過早停止。可根據當前分布重新對訓練樣本進行采樣,再基於新的采樣結果重新訓練處基學習器。
提升方法AdaBoost算法
1、提升方法的基本思路
(1)提高那些被前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值。未被正確分類的樣本受到后一輪弱分類器更大的關注。
(2)AdaBoost 采用加權多數表決,加大分類誤差率小的弱分類器的權值,使其在表決中起較大的作用。
2、AdaBoost算法
注意:修改:
3、一個例子
AdaBoost算法的訓練誤差分析
AdaBoost算法的解釋
1.前向分布算法
2、前向分布算法與AdaBoost算法
AdaBoost算法可以由前向分布算法推導得出,主要依據如下定理:
證明參考這位大神:https://blog.csdn.net/thriving_fcl/article/details/50877957
證明太精彩了,唯一不明白就是樣本權值更新公式。
提升樹
1、提升樹模型
提升樹模型可以表示為決策樹的加法模型:
其中,
2、提升樹算法
用平方誤差損失函數的回歸問題,用指數損失函數的分類問題,以及用一般損失函數的一般決策問題。
(1)分類問題同上面說過的例子,基分類器換做決策樹就行了。下面看一下回歸問題:
(2)一個例子
3、梯度提升
總而言之
最后小結一下GBDT算法的優缺點。
優點:
- 預測精度高
- 適合低維數據
- 能處理非線性數據
缺點:
- 並行麻煩(因為上下兩棵樹有聯系)
- 如果數據維度較高時會加大算法的計算復雜度