bootstrps 、bagging與 boosting

轉自:http://blog.sina.com.cn/s/blog_5dd2e9270100c8ko.html

bootstrps bagging boosting這幾個概念經常用到,現仔細學習了一下:
他們都屬於集成學習方法,(如:Bagging,Boosting,Stacking),將訓練的學習器集成在一起,原理來源於PAC學習模型(Probably Approximately CorrectK)。Kearns和Valiant指出,在PAC學習模型中,若存在一
個多項式級的學習算法來識別一組概念,並且識別正確率很高,那麼這組概念是強可學習的;而如果學習算法識別一組概念的正確率僅比隨機猜測略好,那麼這組概念是弱可學習的。他們提出了弱學習算法與強學習算法的等價性問題,即是否可以將弱學習算法提升成強學習算法。如果兩者等價,那麼在學習概念時,只要找到一個比隨機猜測略好的弱學習算法,就可以將其提升爲強學習算法,而不必直接去找通常情況下很難獲得的強學習算法。
bootstraps:名字來自成語“pull up by your own bootstraps”,意思是依靠你自己的資源,它是一種有放回的抽樣方法,學習中還發現有種叫jackknife的方法,它是每一次移除一個樣本。
bagging: bootstrap aggregating的縮寫。讓該學習算法訓練多輪,每輪的訓練集由從初始的訓練集中隨機取出的n個訓練倒組成,初始訓練例在某輪訓練集中可以出現多次或根本不出現訓練之後可得到一個預測函數序列h.,⋯ ⋯h 最終的預測函數H對分類問題採用投票方式,對迴歸問題採用簡單平均方法對新示例進行判別。
(訓練R個分類fi分類器之間其他相同就是參數不同。其中fi是通過從訓練集合中(N篇文檔)隨機取(取後放回)N次文檔構成的訓練集合訓練得到的 對於新文檔d用這R個分類器去分類,得到的最多的那個類別作爲d的最終類別.)
boosting:其中主要的是AdaBoost(Adaptive Boosting)。初始化時對每一個訓練例賦相等的權重1/n,然後用該學算法對訓練集訓練t輪,每次訓練後,對訓練失敗的訓練例賦以較大的權重,也就是讓學習算法在後續的學習中集中對比較難的訓練鍘進行學習,從而得到一個預測函數序列h 一⋯h其中h.也有一定的權重,預測效果好的預測函數權重較大,反之較小。最終的預測函數H對分類問題採用有權重的投票方式,對迴歸問題採用加權平均的方法對新示例進行判別。( 類似Bagging方法,但是訓練是串行進行的,第k個分類器訓練時關注對前k-1分類器中錯分的文檔,即不是隨機取,而是加大取這些文檔的概率).
Bagging與Boosting的區別:在於Bagging的訓練集的選擇是隨機的,各輪訓練集之間相互獨立,而Boostlng的訓練集的選擇是獨立的,各輪訓練集的選擇與前面各輪的學習結果有關;Bagging的各個預測函數沒有權重,而Boosting是有權重的;Bagging的各個預測函數可以並行生成,而Boosting的各個預測函數只能順序生成。對於象神經網絡這樣極爲耗時的學習方法。Bagging可通過並行訓練節省大量時間開銷。   bagging和boosting都可以有效地提高分類的準確性。在大多數數據集中,boosting的準確性比bagging高。在有些數據集中,boosting會引起退化。---Overfit

文本分類中使用的投票方法(Voting,也叫組合分類器)就是一種典型的集成機器學習方法。它通過組合多個弱分類器來得到一個強分類器,包括BaggingBoosting兩種方式,二者的主要區別是取樣方式不同。Bagging採用均勻取樣,而Boosting根據錯誤率來取樣,因此Boosting的分類精度要優於Bagging。投票分類方法雖然分類精度較高,但訓練時間較長。Boosting思想的一種改進型AdaBoost方法在郵件過濾、文本分類方面都有很好的性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章