【机器学习】集成学习之boosting AdaBoost
Boosting
Boosting策略在上一篇中有提到過,這里再說一遍。
Boosting策略的核心思想就是對錯誤分類的樣本投入更大的關注。采用的是加法模型和向前分步算法,向前分步算法中的每一步都會改變樣本的權重。
模型是加法模型、損失函數為指數函數、學習算法為前向分步算法的二類分類學習方法
一、AdaBoost簡介
? ? ? Boosting, 也稱為增強學習或提升法,是一種重要的集成學習技術, 能夠將預測精度僅比隨機猜度略高的弱學習器增強為預測精度高的強學習器,這在直接構造強學習器非常困難的情況下,為學習算法的設計提供了一種有效的新思路和新方法。其中最為成功應用的是,Yoav Freund和Robert Schapire在1995年提出的AdaBoost算法。
? ? ? AdaBoost是英文"Adaptive Boosting"(自適應增強)的縮寫,它的自適應在于:前一個基本分類器被錯誤分類的樣本的權值會增大,而正確分類的樣本的權值會減小,并再次用來訓練下一個基本分類器。同時,在每一輪迭代中,加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率或達到預先指定的最大迭代次數才確定最終的強分類器。
弱分類器:
什么是弱分類器,只比隨機猜測好一點點的分類器叫弱分類器。就比如一個強分類器來判斷這是一只貓還是一只狗,它可能會給出,這張圖片有0.99的概率為狗。那么弱分類器就只能夠說這張圖片有0.55的概率是狗。只比隨機猜測要好一點點。
弱分類器的優勢是什么?弱分類器的特性就是high-bias & low variance(高偏差-低方差),其與生俱來的優點就是泛化性能好。因此,將多個算法組合起來之后,可以達到降偏差的效果,進而得到一個偏差小、方差小的泛化能力好的模型。
所以說Boosting與bagging很大不同的一點就是,boosting是通過集成模型來降低偏差,而bagging是通過集成模型來降低方差。
常用的弱分類器像決策樹樁,ID3,C4.5,CART因為決策樹很容易過擬合,所以說用這些樹模型的時候一定要預剪枝限制深度等或者后剪枝,總之要低方差,偏差高無所謂。
Adaboost算法流程:
另一種符號表示的
的推導 訓練誤差界
最終得到的分類器是,如果,有,則,如果,有,則,那么有下式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
簡單說就是不想等的時候左邊為1,右邊>=1。想等的時候左邊為0,右邊>=0.
再根據權值的更新公式,變下型
有
接下來就可以開始正式的推導了。
(1)式右端項有
公式編輯器好蛋疼。直接上圖吧,符號有一點不一樣。
因此可以得出,Adaboost的誤差界為
它的就是我這里的
權值更新也可以重新推導,不再需要去復雜的計算。縮放就可以得到下一步迭代的新的權重。
戲稱為Thank God Hole
AdaBoost應到到多分類場景
M1,M2:https://blog.csdn.net/tyh70537/article/details/76675098
掌握上面這些推導理論基本上算是穩了。接下來講一下adaboost的優缺點和應用場景。
Adaboost的回歸算法
Adaboost R2:
其實大體的思路與分類算法一樣,就是一些系數的計算更新公式變了,多分類也是這樣的。
二分類的一個實例
https://blog.csdn.net/hffhjh111/article/details/72348378
優缺點和應用場景
優點
缺點
?
?
參考:http://www.csuldw.com/2016/08/28/2016-08-28-adaboost-algorithm-theory/
?
總結
以上是生活随笔為你收集整理的【机器学习】集成学习之boosting AdaBoost的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】集成学习ensemble之随
- 下一篇: 【机器学习】集成学习之梯度提升树GBDT