adaboost的樣本權值如何對弱分類器產生影響?
01-07
adaboost演算法中,每個樣本,根據是否被分錯,會有一個權值,請問這個權值的大小,對於我使用的弱分類器(例如SVM,LR),如何產生影響?需要修改弱分類器的代碼嗎?
樣本權值,本質上是樣本的數量分布。要影響到弱分類器 ,分兩種情況1:通過修改弱分類器代碼,使它支持帶權值的訓練樣本。不同弱分類器修改方法也不同,一般需要修改損失函數,拿LR來說,如果原來的損失函數是cost(x),那麼現在應該是w*cost(x),w是樣本權值,對於樹模型,則需要修改信息增益或者gini的公式,引入權值 。
2:如果不方便修改分類器代碼,那麼可以對訓練樣本,進行bootstrap抽樣,每次抽樣的概率等於樣本權值 ,這樣可以達到類似效果,不過不如第一種方法直接。
順便說一下,adaboost,使用LR或者SVM這樣的線性強分類器,可能造成兩個問題1:第一次產生的分類器錯誤率上已經達到極限,使後面的分類器起不到效果,或者說分類器的差異性太小2:訓練出來的多個分類器,基本是相似位置的超平面 ,也就是說,最後組合得到的,還是一個線性分類器,因此模型對數據的擬合能力,不如非線性分類器,達不到adaboost組合變強的效果錯分的樣本權值會變大,下次被錯分的機會就小了。adaboost的弱分類器的權值取決於這個弱分類器的錯分率,而這個弱分類器的錯分率恰好跟上一個弱分類器分後的樣本權值有關。簡單點說。只會影響弱分類器的權值,對弱分類器本身沒有任何影響。
首先, 題主居然把SVM作為弱分類器,我也是醉了...其次是回答你的問題,你改變了樣本的權值不會影響分類器的工作原理,但會影響分類器的訓練,舉個簡單的例子,一個樣本的權重如果是2,那麼相當於把這個樣本在數據集里複製了一遍,所以會影響你的決策面,導致分類器不同。
修改權值其實有兩個環節。
提高誤分樣本的權值,是為了讓它們在後一輪的學習中更容易被挑出來。
減少正確分類樣本的權值,是因為adaboost的目的是爭取將一群弱分類器提升為強分類器,你這些樣本都可以隨便就被一個弱分類器正確分類了,下一輪再盯著這些樣本也沒意思,所以降低它們的權值使得它們不容易被挑出來再次訓練。
到了舉手表決環節,面對訓練出來的一系列弱雞分類器,則要加大那些誤分率小的分類器的權重,使得它們的聲音更大,更有話語權。
所以回到問題,修改權值是對訓練過程有影響,對分類器本身不影響。
至於題主說svm是個弱分類器。。。。。。它要哭了。。如果說svm是洲際導彈的話,那adaboost就是個喀秋莎,你感受下。大家功力不一樣,但是追求的效果一樣,殊途同歸。下面回答來自周志華老師的《機器學習》
我以前好像遇到過類似的問題,試試svmlight,也許有你要的答案。
學習了。
占坑,下班來答
推薦閱讀:
※凸優化書籍推薦?
※計算機專碩研一新生求教自然語言處理學習?
※tf.nn.embedding_lookup函數原理?
※深度學習演算法哪些適用於文本處理?