AdaBoost算法概述
當做重要決定時,大家可能都會征求多個專家而不是一個人的意見。機器學(xué)習(xí)處理問題時又何嘗不是如此?這就是元算法(meta-algorithm)背后的思路,元算法是對其他算法進行組合的一種方式。
AdaBoost就是最流行的一種元算法,是英文“Adaptive Boosting”(自適應(yīng)增強)的縮寫。其核心思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強的最終分類器(強分類器)。
優(yōu)點:泛化錯誤率低,容易編碼,可以應(yīng)用在大部分分類器上,無參數(shù)調(diào)整。
缺點:對離群點敏感。
適用數(shù)據(jù)類型:數(shù)值型和標稱型數(shù)據(jù)。
入門案例
AdaBoost算法的處理過程如下:
1、先通過對N個訓(xùn)練樣本的學(xué)習(xí)得到第一個弱分類器;
2、將分錯的樣本和其他的新數(shù)據(jù)一起構(gòu)成一個新的N個的訓(xùn)練樣本,通過對這個樣本的學(xué)習(xí)得到第二個弱分類器;
3、將1和2都分錯了的樣本加上其他的新樣本構(gòu)成另一個新的N個的訓(xùn)練樣本,通過對這個樣本的學(xué)習(xí)得到第三個弱分類器;
4、最終經(jīng)過提升的強分類器。即某個數(shù)據(jù)被分為哪一類要由各分類器權(quán)值決定。
以上比較難懂,所以我們用一個可視化的案例來表達其意圖,幫助理解。(本讀書筆記不講代碼的具體實現(xiàn))








工作原理
在前面已經(jīng)學(xué)習(xí)過5個分類器算法:k-近鄰算法、決策樹算法、樸素貝葉斯算法、Logistic回歸算法、SVM算法。用不同的算法對同一個數(shù)據(jù)集進行分類,可能會得到差別顯著的結(jié)果。
分類器之間的差別可能是算法本身的問題,也可能是數(shù)據(jù)的問題等等多種原因。所以,AdaBoost集成方法通過組合多個分類器的分類結(jié)果,得到比單一分類器更好的分類結(jié)果,避免出現(xiàn)“過擬合(overfitting)”問題。
AdaBoost以弱分類器作為基礎(chǔ)分類器,并且輸入數(shù)據(jù),使其通過權(quán)重向量進行加權(quán)。在第一次迭代中,所有數(shù)據(jù)都等權(quán)重。但在后續(xù)的迭代中,其次迭代分錯的數(shù)據(jù)的權(quán)重會增大。這種針對錯誤的調(diào)節(jié)能力正是AdaBoost的長處。
一般流程
1.收集數(shù)據(jù):可以使用任何方法;
2.準備數(shù)據(jù):依賴于所使用的弱分類器類型,本章使用的是單層決策樹,這種分類器可以處理任何數(shù)據(jù)類型。當然也可以使用任意分類器作為弱分類器,當然簡單分類器的效果更好;
3.分析數(shù)據(jù):可以使用任意方法;
4.訓(xùn)練算法:AdaBoost的大部分時間都用在訓(xùn)練上,分類器將多次在統(tǒng)一數(shù)據(jù)集上訓(xùn)練弱分類器;
5.測試算法:計算分類的錯誤率;
6.使用算法:同SVM一樣,AdaBoost預(yù)測兩個類別中的一個。如果想把它應(yīng)用到多個類別的場合,那么就要進行適當?shù)男薷摹?/p>
可使用場景
1.任何分類場景
......