1.集成學習
集成學習(ensemble learning)通過組合多個基分類器(base classifier)來完成學習任務,頗有點“三個臭皮匠頂個諸葛亮”的意味。基分類器一般采用的是弱可學習(weakly learnable)分類器,通過集成學習,組合成一個強可學習(strongly learnable)分類器。所謂弱可學習,是指學習的正確率僅略優于隨機猜測的多項式學習算法;強可學習指正確率較高的多項式學習算法。集成學習的泛化能力一般比單一的基分類器要好,這是因為大部分基分類器都分類錯誤的概率遠低于單一基分類器的。
偏差與方差
“偏差-方差分解”(bias variance decomposition)是用來解釋機器學習算法的泛化能力的一種重要工具。對于同一個算法,在不同訓練集上學得結果可能不同。對于訓練集,由于噪音,樣本
的真實類別為
(在訓練集中的類別為
),則噪聲為
學習算法的期望預測為
使用樣本數相同的不同訓練集所產生的方法
期望輸入與真實類別的差別稱為bias,則
為便于討論,假定噪聲的期望為0,即,通過多項式展開,可對算法的期望泛化誤差進行分解(詳細的推導參看[2]):
也就是說,誤差可以分解為3個部分:bias、variance、noise。bias度量了算法本身的擬合能力,刻畫模型的準確性;variance度量了數據擾動所造成的影響,刻畫模型的穩定性。為了取得較好的泛化能力,則需要充分擬合數據(bias小),并受數據擾動的影響小(variance小)。但是,bias與variance往往是不可兼得的:
當訓練不足時,擬合能力不夠強,數據擾動不足以產生較大的影響,此時bias主導了泛化錯誤率;
隨著訓練加深時,擬合能力隨之加強,數據擾動漸漸被學習到,variance主導了泛化錯誤率。
Bagging與Boosting
集成學習需要解決兩個問題:
如何調整輸入訓練數據的概率分布及權值;
如何訓練與組合基分類器。
從上述問題的角度出發,集成學習分為兩類流派:Bagging與Boosting。Bagging(BootstrapAggregating)對訓練數據擦用自助采樣(boostrap sampling),即有放回地采樣數據;每一次的采樣數據集訓練出一個基分類器,經過MM次采樣得到MM個基分類器,然后根據最大表決(majority vote)原則組合基分類器的分類結果。
Boosting的思路則是采用重賦權(re-weighting)法迭代地訓練基分類器,即對每一輪的訓練數據樣本賦予一個權重,并且每一輪樣本的權值分布依賴上一輪的分類結果;基分類器之間采用序列式的線性加權方式進行組合。
從“偏差-方差分解”的角度看,Bagging關注于降低variance,而Boosting則是降低bias;Boosting的基分類器是強相關的,并不能顯著降低variance。Bagging與Boosting有分屬于自己流派的兩大殺器:Random Forests(RF)和Gradient Boosting Decision Tree(GBDT)。本文所要講的AdaBoost屬于Boosting流派。
2.AdaBoost算法
AdaBoost是由Freund與Schapire [1] 提出來解決二分類問題
根據加型模型(additive model),第m輪的分類函數
其中,為基分類器
的組合系數。AdaBoost采用前向分布(forward stagewise)這種貪心算法最小化損失函數(1),求解子模型的
其中,為
的分類誤差率。第m+1輪的訓練數據集權值分布
其中,為規范化因子
則得到最終分類器
是
的單調遞減函數,特別地,當
時,
;當
時,即基分類器不滿足弱可學習的條件(比隨機猜測好),則應該停止迭代。具體算法流程如下:
在算法第4步,學習過程有可能停止,導致學習不充分而泛化能力較差。因此,可采用“重采樣”(re-sampling)避免訓練過程過早停止;即拋棄當前不滿足條件的基分類器,基于重新采樣的數據訓練分類器,從而獲得學習“重啟動”機會。
AdaBoost能夠自適應(addaptive)地調整樣本的權值分布,將分錯的樣本的權重設高、分對的樣本的權重設低;所以被稱為“Adaptive Boosting”。sklearn的AdaBoostClassifier實現了AdaBoost,默認的基分類器是能fit()帶權值樣本的DecisionTreeClassifier。
老師木在微博上提出了關于AdaBoost的三個問題:
1,adaboost不易過擬合的神話。
2,adaboost人臉檢測器好用的本質原因,
3,真的要求每個弱分類器準確率不低于50%。
-
算法
+關注
關注
23文章
4631瀏覽量
93425 -
集成學習
+關注
關注
0文章
10瀏覽量
7334 -
分類器
+關注
關注
0文章
152瀏覽量
13237
原文標題:【十大經典數據挖掘算法】AdaBoost
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
利用單詞超團的二分圖文本聚類算法
基于主動學習不平衡多分類AdaBoost改進算法
一種多分類的AdaBoost算法
基于聚類算法的二分網絡社區挖掘算法
![基于聚<b class='flag-5'>類</b><b class='flag-5'>算法</b>的<b class='flag-5'>二分</b>網絡社區挖掘<b class='flag-5'>算法</b>](https://file.elecfans.com/web2/M00/49/84/poYBAGKhwMGAHZ9OAAAYR9jkeKc720.jpg)
非線性AdaBoost算法
基于可能性二均值聚類的二分類支持向量機
基于AdaBoost算法的復雜網絡鏈路預測
![基于<b class='flag-5'>AdaBoost</b><b class='flag-5'>算法</b>的復雜網絡鏈路預測](https://file.elecfans.com/web1/M00/E9/DD/pIYBAGBudyqAXzumAALM_fWVLjw771.png)
一種融合語義模型的二分網絡推薦算法
![一種融合語義模型的<b class='flag-5'>二分</b>網絡推薦<b class='flag-5'>算法</b>](https://file.elecfans.com/web1/M00/ED/59/pIYBAGCI-PKAEHqWAAMkWPYjQyk303.png)
二分搜索算法運用的框架套路
如何理解二分查找算法
![如何理解<b class='flag-5'>二分</b>查找<b class='flag-5'>算法</b>](https://file1.elecfans.com/web2/M00/82/12/wKgaomQ_Wx-AbECcAAAcrhd3PMg378.jpg)
評論