機器學習 提公升方法AdaBoost演算法

2021-07-25 20:40:17 字數 3404 閱讀 2975

機器學習 深度學習 nlp 搜尋推薦 等 索引目錄

adaboost演算法是提公升方法中具有代表性的一種演算法,本篇博文主要學習adaboost的演算法思想以及從前向分步加法模型的角度來解釋adaboost演算法。

對於提公升方法來說,其基本思路是從弱學習演算法出發,反覆學習,得到一系列弱分類器(基分類器),然後組合這些弱分類器,構成乙個強分類。大多數提公升方法都是改變訓練資料的概率分布或權值分布,針對不同訓練資料分布呼叫弱學習演算法學習一系列弱分類器,那麼如何改變訓練資料的權值或概率分布,如何將弱分類器組合為強分類器,就是提公升方法所要解決的兩個關鍵問題。

如何改變訓練資料的權值或概率分布?adaboost演算法的解決方法是,提高那些被前一輪弱分類器錯誤分類的樣本的權值,降低分類正確的樣本的權值,這樣分類錯誤的樣本在下一輪弱分類器的訓練中會受到更大的關注;

如何將一系列弱分類器組合為強分類器?adaboost演算法採用加權多數表決的方法來加大分類誤差率較小的弱分類器的權值,使其在表決中起到較大的作用,反之,分類誤差率較大的弱分類器給予較小的表決權值。

設二類分類訓練資料集t=(

x1,y

1),(

x2,y

2),.

..,(

xn,y

n)

t=t=

(x1​

,y1​

),(x

2​,y

2​),

...,

(xn​

,yn​

),其中xi∈

χ,yi

∈y

=x_\in \chi ,y_\in y=\left \

xi​∈χ,

yi​∈

y=;設初始化訓練資料的權值分布

d 1=

(w11,

w12,.

..,w

1i,.

..,w

1n),

w1i=

1/n,

i=1,

2,..

.,

nd_=(w_,w_,...,w_,...,w_),w_=1/n,i=1,2,...,n

d1​=(w

11​,

w12​

,...

,w1i

​,..

.,w1

n​),

w1i​

=1/n

,i=1

,2,.

..,n

演算法步驟:

輸入:訓練資料集t

tt;弱學習演算法;

輸出:強分類器g(x

)g(x)

g(x)

。1)初始化訓練資料集的權值分布

d 1=

(w11,

w12,.

..,w

1i,.

..,w

1n),

w1i=

1/n,

i=1,

2,..

.,

nd_=(w_,w_,...,w_,...,w_),w_=1/n,i=1,2,...,n

d1​=(w

11​,

w12​

,...

,w1i

​,..

.,w1

n​),

w1i​

=1/n

,i=1

,2,.

..,n

2)form

=1to

mfor\ m=1\ to\ m

form=1

tom

這裡z

mz_m

zm​是規範化因子

z m=

∑i=1

nwmi

exp(

−αmy

igm(

xi))

z_=\sum_^w_exp(-\alpha _y_g_(x_))

zm​=∑i

=1n​

wmi​

exp(

−αm​

yi​g

m​(x

i​))

它使dm+1

d_dm

+1​稱為乙個概率分布。

3)構建基本分類器的線性組合

f (x

)=∑m

=1mα

mgm(

x)

f(x)=\sum_^\alpha _g_(x)

f(x)=∑

m=1m

​αm​

gm​(

x)得到最終分類器

g (x

)=si

gn(f

(x))

=sig

n(∑m

=1mα

mgm(

x)

)g(x)=sign(f(x))=sign\left ( \sum_^\alpha _g_(x) \right )

g(x)=s

ign(

f(x)

)=si

gn(∑

m=1m

​αm​

gm​(

x))

根據第二步的第d)小步,可以計算出,五分類樣本的權值被放大e2α

m=em

1−em

e^}=\frac}}

e2αm​=

1−em

​em​

​倍,因此誤分類樣本在下一輪訓練中起到更大的作用。不改變所給的訓練資料,而不斷改變訓練資料的權值分布,使得訓練資料在基本分類器的學習中起不同的作用,這是adaboost的乙個特點。

對於adaboost的舉例介紹,在李航的《統計學習方法》中給出了經典的例子,現在網上大多數例子都是來自這本書,這裡不再贅述。

adaboost 的另一種解釋是,adaboost演算法是模型為加法模型、損失函式為指數函式、學習演算法為前向分步演算法時的二分類學習方法

前向分步演算法求解加法模型損失函式極小化問題的想法是:因為學習的是加法模型,如果能從前向後,每一步只學習乙個基函式及其係數,逐步逼近優化目標函式,那麼就可以減少優化的複雜度。

adaboost演算法是前向分步演算法的特例,這時,模型是基本分類器組成的加法模型,損失函式是指數函式。這個證明過程就不在這裡詳述了。

總結:1)adaboost演算法可以看做是模型為加法模型、損失函式為指數函式、學習演算法為前向分步演算法時的二分類學習方法;

2)adaboost演算法的訓練誤差是以指數速率下降的;

3)adaboost演算法不需要事先知道下界,具有自適應性,它能自適應弱分類器的訓練誤差率;

4)優點:泛化能力強,易編碼,可用在絕大部分分類器上,無引數調整;缺點:對離群點敏感。

機器學習(十一) 提公升方法

整合學習 通過構建並結合多個學習器來完成學習任務 整合學習方法大致可以分為兩大類 a.個體學習器間存在強依賴關係,必須序列生成序列化方法 代表 boosting b.個體學習器間不存在強依賴關係,可同時生成的並行化方法 代表 bagging和 隨機森林 一 boosting boosting的工作機...

提公升方法(整合學習)

整合學習總結 思想 由多個分類器組合成乙個效能更好的分類器。每個分類器應該好而不同,即本身準確率要足夠高,並且之間要有多樣性。整合學習研究的核心 如何產生好而不同的分類器?既滿足準確性又滿足多樣性 分類 1 序列化方法 個體之間存在強依賴關係,必須序列生成。boosting,是利用不同模型的相加,構...

機器學習模型效能提公升方案

機器學習最有價值的部分是 建模。這是在歷史資料上訓練模型並對新資料進行 的模型的開發。關於 建模的首要問題是 如何獲得更好的結果?這份備忘單包含了多年以來我的最佳應用程式,以及我對頂尖的機器學習從業人員和比賽獲勝者的學習所總結出的最佳建議。有了本指南,您不僅會得到解脫和提公升的效能,甚至可以在 問題...