機器學習之AdaBoost

2021-08-20 14:02:38 字數 2034 閱讀 7616

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.策...