1. 程式人生 > >Boosting中Adaboost的通俗理解

Boosting中Adaboost的通俗理解

今天知乎上被私信說我對Adaboost的通俗解釋很好理解,那我就把當初的答案貼下來,做個記錄吧,該理解沒有任何數學公式

要看數學公式的推薦每個做統計演算法和機器學習的人都會看的: 李航統計學習方法的Adaboost那一章節,完整,易懂!


我對Boosting和Adaboost的理解是:

boosting的原理就是三個臭皮匠,賽過諸葛亮一樣。把很多分類準確率很低的分類器通過更新對資料的權重,整合起來形成一個分類效果好的分類器。所以他也叫ensemble,整合方法的一種。

Adaboost就是其中的一種演算法,通過更改訓練樣本對每個分類器的權重,讓每個若分類器能互補之間不能很好分類的資料。 好比說一個公司,你只會寫程式碼,但不會運營,管理,算賬,招人,但你可以請一些會運營,管理,會計,HR的人,雖然他們不會寫程式碼,但你會啊,各自做好分類的事,形成一個牛逼的公司。

我很討厭用數學解決這些演算法,但還是簡單說下,大體就是。若第一個分類器對樣本x1,x2 的分類效果好,對x3的分類效果差,那麼第二個分類器通過一個神奇的公式,把對x3的權重增加,x1,x2的權重降低。為什麼呢?因為我們認為第一分類器已經能很好的分類x1和x2,對x3卻不行,所以我們不太需要讓第二分類器考慮x1,x2了,因為咱有第一份類器去處理他們了,所以第二個分類器就是要互補第一分類器,讓他多多考慮第一分類器無法準確分類的資料。 然後整很多這樣的分類器,每個分類器一般來說能分類一些資料不能分類一些資料,但是通過他們的基友來幫他們分類他們所不行的資料,最後大家整合在一起,形成一個超叼的分類器。最後對每個分類器給一個權重,看看他們在大分類器的重要性,大體公式是H(x)=sign(sum(權重*分類器t)),t=1,2...,N 意思就是把所有分類器的輸出加起來,取正負號,得到最後的結果