機器學習 AdaBoost 原理與推導

2021-08-31 06:56:04 字數 1756 閱讀 1503

adaboost 自適應 增強

boosting系列代表演算法,對同一訓練集訓練出不同的(弱)分類器,然後集合這些弱分類器構成乙個更優效能的(強)分類器

傳統boosting方法存在兩個問題:

1. 如何調整訓練集的權重分布以訓練出不同的弱分類器

2. 如何將各個弱分類器聯合起來組成乙個強分類器

adaboost解決方案:

1.從均勻權重分布開始,後一輪弱分類器的輸入權重分布將

·提高前一輪弱分類器分類錯誤樣本的權重

·降低前一輪弱分類器分類正確樣本的權重

2.計算各個弱分類器 在訓練集上的分類誤差率,根據誤差率計算各個弱分類器的 加權係數

·對新樣本進行分類時,將各個弱分類器的計算結果加權求和,求得最終的分類結果

假設訓練乙個含有m個弱分類器gi(i=1,2,...,m)的adaboost模型,n個訓練樣本xj,yj(j=1,2,...n),m個弱分類器輸入權重分布 分別為 

第乙個分類器:d1(w11, w12, ..., w1j, ..., w1n)

第二個分類器:d2(w21, w22, ..., w2j, ..., w2n)

....       :...

第m個分類器:dm(wm1,wm2,...,wmj,...,wmn)    【注意:任何情況下權重之和都為1,即對di有 ∑n_j = 1】

1.初始化 d1中 w1j = 1/n, 按樣本集以d1的權重分布 來訓練 分類器 g1,得到分類模型 g1(x)

·計算 g1(x) 在訓練集上的 分類誤差率 e:        (被g(x)誤分類樣本的權值之和)

e1 = p( g1(xj)≠yi )

= ∑n_j        【2.19】

其中 i(條件表示式) = 滿足條件時值為1,不滿足條件時為0

·計算 g1(x) 的加權係數 α:            (多分類器整合時使用的權值)

α1 = 1/2 * ln( (1-e1)/e1 )        【2.20】

·計算 g1(x) 的泛化因子 z1:

z1 = ∑n_j    【2.21】  

2.更新第二個分類器的權值分布 d2(w21, w22, ..., w2j, ..., w2n)

w2j = (w1j / z1) * exp( -α1*yj*g1(xj) )        【2.22】

·按樣本集以d2的權重分布 來訓練 分類器 g2,得到分類模型 g2(x)

·計算 g2(x) 在訓練集上的 分類誤差率 e2

·計算 g2(x) 的加權係數 α2

·計算 g1(x) 的泛化因子 z2

3.同步驟2,依次迭代到 第m個分類器 為止

至此,得到m個分類器的 分類模型 g1,g2,...,gm 及其加權係數 α1,α2,...,αm

4.構建m個弱分類器的 線性組合模型 f(x):    

f(x) = ∑m_i            【2.23】

=》得到最終的adaboost分類模型 cls(x) = sign(f(x)) = sign( ∑m_i )        【2.24】

同屬於boosting系列演算法還有 xgboost:

了解其他整合學習方法 可參考: 

機器學習 分類器 Adaboost原理

adaboost adaptiveboosting 是一種迭代演算法,通過對訓練集不斷訓練弱分類器,然後把這些弱分類器集合起來,構成強分類器。adaboost演算法訓練的過程中,初始化所有訓練樣例的具有相同的權值重,在此樣本分佈下訓練出乙個弱分類器,針對錯分樣本加大對其對應的權值,分類正確的樣本降低...

機器學習之AdaBoost

機器學習之adaboost adaboost是一種組合學習的提公升演算法,能將多個弱學習演算法 甚至只比隨機猜測好一點 組合起來,構成乙個足夠強大的學習模型。組合學習是將多個假說組合起來,並整合它們的 比如對於乙個問題,我們可以生成20棵決策樹,讓它們對新樣例的分類進行 最後通過投票決定最終的 這樣...

機器學習之AdaBoost

adaptive boosting 自適應增強 是一種迭代演算法,它的主要思想是 每次迭代調整樣本的權重,並用更新過權重值的資料集訓練下乙個弱學習器,直到達到某個預定的足夠小的錯誤率 或者達到指定的最大迭代次數之後,將各個弱學習器加權組合為最終的強學習器。該演算法每次迭代改變的是樣本的權重 re w...