AdBoost算法详解
AdBoost算法詳解
- 1 算法簡介
- 1.2AdaBoost特點
- 1.3Bagging與AdaBoost區別
- 2AdaBoost算法步驟
- 3 AdaBoost的數學定義
- 4 推廣到多分類
算法引入:
?對于Boosting算法,存在兩個問題
??在每一輪中如何調整訓練集,使訓練的弱分類器得以進行
??如何將各個弱分類器聯合起來形成強分類器
?Boosting框架中的代表算法是AdaBoost算法.
1 算法簡介
屬于集成學習中的串行學習方法.
AdaBoost自適應提升算法和Boosting考慮的點一樣
AdaBoost自適應在于:’’關注”被錯分的樣本,”器重”性能好的弱分類器
?不同的訓練集–>調整樣本的權重
?“關注”—>增加錯分樣本權重
?“器重”---->好的分類器權重大
?樣本權重間接影響分類器權重
1.2AdaBoost特點
AdaBoost把多個不同的弱分類算法,用一種隨機的方式組合起來,表現出驚人的性能.
?1.可以使用各種方法構建子分類器(弱分類器),AdaBoost算法提供的是框架
?2.子分類器容易構造
?3.速度快,且基本不用調參數
?4.泛化誤差率低
1.3Bagging與AdaBoost區別
?Bagging算法:并行,提供的是我們抽樣(62.3%)后的數據集進行并行訓練(好像是取結果的平均值,所以才減小方差)
?AdaBoost算法:串行,根據全部數據集建立模型,關注偏差.
2AdaBoost算法步驟
?1.初始化訓練數據的權值分布:假設有N個樣本,每個樣本賦予相同權值1/N
?2.訓練弱分類器:本輪訓練中,提高錯分樣本的權值,相反分類正確的樣本降低權值.然后,權值更新后的全部樣本被用于訓練下一個分類器,使得下一個分類器更加關注權值大的難分樣本.多次迭代,訓練多個弱分類器
?3.加權組合弱分類器:加大分類誤差率小的弱分類器權重,使其在最終表決中起較大作用,而降低分類誤差率大的弱分類器的權重,使其在最終表決匯總起較小作用
示例:
圖1 下面的兩個藍色的圓形表示被分錯的兩個樣本,所以可以在圖2中看到他們的權重加大了,其他分類正確的樣本的權重減少了
圖4就是前面三個弱分類器加權組合后,用相同的數據集得到的二分類結果
3 AdaBoost的數學定義
這部分主要是知道了數據集樣本的權值是怎么更新的,弱分類器的權重是怎么計算出來的.
可以把xi理解為一個多個維度組成的一個x
wi就是一個樣本權值集合
用有權值分布的數據集去弱分類器中訓練. 因為這里的弱分類器都是二分類器,且預測值都為-1,1
弱分類器,輸出的結果只有-1,1
其中這個函數的理解:
弱分類器的預測結果與樣本對應的真實結果yi不相等時返回1,相等時返回0
em是當前弱分類器誤分類樣本的權重之和,1-em是當前弱分類器正確分類樣本的權重之和
這里Zm的作用:
使上面公式中所有樣本求得的Wmi*e-αm值分別除以Zm之后,數據集樣本的權值之和為1,可以理解為權值的歸一化處理
因為最終的分類器也要是一個二分類器,所以對基本分類器權值的線性組合后要做進一步的處理,由sign函數知道y的取值只能為-1,+1
補充:AdaBoost算法的損失函數用的是指數損失(指數損失用在分類問題中)
4 推廣到多分類
?多分類問題可以使用二分類問題的思想來解決問題,ovr,ovo.
總結
以上是生活随笔為你收集整理的AdBoost算法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速了解Bagging算法
- 下一篇: 梯度与梯度下降法详解