adaptive boosting(自適應增強)是一種迭代演算法,它的主要思想是:每次迭代調整樣本的權重,並用更新過權重值的資料集訓練下乙個弱學習器,直到達到某個預定的足夠小的錯誤率、或者達到指定的最大迭代次數之後,將各個弱學習器加權組合為最終的強學習器。
該演算法每次迭代改變的是樣本的權重(re-weighting),如果無法接受帶權樣本的基學習演算法,則可進行重取樣法(re-sampling),獲得重啟動機會以避免訓練過程過早停止;是乙個將弱學習器提公升的過程,通過不斷的訓練可以提高對資料的**能力。
adaboost的優點:
(1)可以處理連續值和離散值;
(2)可以將不同的分類演算法作為基分類器;
(3)解釋性強,結構簡單;
(4)泛化錯誤率低(margin theory以及弱學習器通常比較簡單,不是很容易陷入過擬合);
(5)無需調整超參。
adaboost的缺點:
(1)對訓練樣本集中的異常點本敏感,異常樣本可能會在迭代過程中獲得較高的權重值,最終影響模型效果;
(2)迭代次數(弱學習器個數)不好確定。
1、adaboost演算法的執行過程如下
(1)為訓練集中每乙個樣本賦予乙個權重值,這些權重值初始化為相等的值,所有權重總和為1。
(2)在訓練集上訓練出乙個弱學習器,並計算其錯誤率。
(3)根據分類結果調整每個訓練樣本的權重值:分錯的樣本權重增大,分對的樣本權重減小。
(4)使用更新過權重值的訓練集訓練下乙個弱學習器
(5)如此迭代直至達到停止條件
(6)將每次訓練得到的弱學習器線性組合組合成為乙個最終的強學習器,其中分類誤差率較小的弱學習器權值較大,分類誤差率較大的弱學習器權值較小。
2、adaboost演算法構建及公式推導
(1)訓練資料集 , yi ϵ
(2)初始化訓練資料權重分布
(3)進行迭代t=1,2,...,t,即一共訓練t個弱學習器
(a)使用具有權值分布dt
的訓練資料集進行學習,訓練出弱學習器ht
:x→(b)根據弱學習器各自的權重αt
組合各個弱學習器
第t-1輪的弱學習器的組合:
第t輪的弱學習器的組合:
(c)第t輪得到的ht
的錯誤率為(由指數函式的性質可得adaboost的誤差上界,且為了書寫方便省略除以m)
其中i(·)是示性函式,事件發生取1,不發生取0
(d)計算ht
在最終的強學習器中所佔的權重αt
在訓練的過程中,為了求錯誤率/損失函式的最小值,對其進行計算:
令loss對αt
求導,導數等於零,可以求得公式:
倒數第二步是由εt
的定義:
(4)更新訓練集樣本的權值分布d(t+1)
分對的樣本權重減小,分錯的樣本權重增加:
其中zt
是歸一化因子,為了使樣本的概率分布總和為1。
3、adaboost scikit-learn相關引數
機器學習之AdaBoost
機器學習之adaboost adaboost是一種組合學習的提公升演算法,能將多個弱學習演算法 甚至只比隨機猜測好一點 組合起來,構成乙個足夠強大的學習模型。組合學習是將多個假說組合起來,並整合它們的 比如對於乙個問題,我們可以生成20棵決策樹,讓它們對新樣例的分類進行 最後通過投票決定最終的 這樣...
機器學習之AdaBoost
adaboost是一種組合學習的提公升演算法,能將多個弱學習演算法 甚至只比隨機猜測好一點 組合起來,構成乙個足夠強大的學習模型。組合學習是將多個假說組合起來,並整合它們的 比如對於乙個問題,我們可以生成20棵決策樹,讓它們對新樣例的分類進行 最後通過投票決定最終的 這樣可以有效的降低錯誤率。提公升...
機器學習演算法 之Adaboost
統計學習方法 對adaboost演算法進行了相當精彩的介紹,尤其是後面證明adaboost演算法是前向分布加法演算法的特例,這就將adaboost演算法拉入到 統計學習 模型 策略 演算法這一框架中。1.模型 加法模型 adaboost演算法期望用一系列不同權重的基函式的和來構成最終的分類器。2.策...