整合學習是指通過訓練多個分類器,然後將這些分類器組合起來,來獲得比單個分類器更優的效能(比最好的那個分類器還要好)。如果每個分類器都是同種型別的(比如都是決策樹或者都是svm等等),那麼這些單個的分類器我們稱為基學習器;如果整合中包含不同型別的分類器,這樣的整合是異質的。需要注意的是,這些單個的分類器效能不一定要很好,只需要比隨機猜測好就可以。在我們一般的經驗中,如果把好的東西與壞的東西摻雜在一起,那麼結果通常是比最壞的要好但比最好的要差一些。那麼,為什麼整合學習可以獲得比最好的單一學習器更好的效能呢?這要從人們對乙個問題的爭論談起,即,強可學習與弱可學習是否等價。
強可學習((strong pac learnability):乙個概念c在假設空間h下是強可學習的,是指存在乙個演算法a,對∀c
ϵc、輸入空間上的任意分布d以及∀ε
ϵ(0,
12)和
∀δϵ(
0,12
),從資料集d中給定多項式個(與1ε
,1δ)獨立同分布的樣本,存在乙個假設hϵ
h,使得: p(
err(
h)≤ε
)≥1−
δ弱可學習(weak pac learnability)乙個概念c在假設空間h下是弱可學習的,是指存在乙個演算法a和乙個
γ>0,對
∀cϵc
、輸入空間上的任意分布d以及∀δ
ϵ(0,
12),從資料集d中給定多項式個(與1δ
同階)獨立同分布的樣本,存在乙個假設hϵ
h,使得: p(
err(
h)≤1
2−γ)
≥1−δ
也就是說,乙個概念強可學習,那麼其錯誤幾乎可以很小;而乙個弱可學習的概念,則只是比隨機猜測好一點。
rob schapire證明了強可學習與弱可學習是等價的,於是在學習中如果存在弱學習演算法,我們就可以通過組合多個弱學習演算法來得到強學習演算法。
如何選擇學習器?
每個學習器應盡可能不相關,同時分類錯誤率小於0.5。分類器要有足夠的多樣性(diversity)。如何獲得這些不相關的學習器呢?一種方法是,對訓練資料集取樣,這樣取樣出的子集有差異,訓練出來的學習器也就有較大的差異;另一種方法是,先訓練乙個分類器,然後根據這個分類器的表現改變訓練資料的分布,使得被分類錯誤的樣本有更大的權重。這樣,整合學習方法可以分成兩類,一類是bagging/隨機森林,一類是提公升演算法(boosting)。
決策樹是乙個常用的機器學習演算法。它採用了分而治之的策略,也就是對乙個分類問題,每次從學習得到的特徵集中選取乙個特徵把輸入資料分成兩類。訓練也就是生成決策樹的時候,最關鍵的就是選擇每個節點的劃分標準。按照節點劃分標準的不同,決策樹可以分成三類:id3、c4.5、cart。
id3演算法每次選擇乙個特徵,使得樣本集的資訊量減少最大。這樣,熵減少得最快,有望獲得一棵深度最淺的樹。具體是:已知訓練樣本集d(假設有c類),我們可以根據這個樣本集中每一類出現的概率,算出樣本集d包含的資訊量。然後,從特徵集x中選擇乙個特徵x,則我們可以計算已知x的情況下各類的條件概率,然後計算出已知x的情況下d包含的資訊量。也就是說,我們要選擇乙個x使得x與d相互包含的資訊量最大: ar
gmax
xϵxi
(x,d
)c4.5演算法不直接用資訊增益,而是使用資訊增益率來選擇最優劃分。
cart使用基尼指數來選擇劃分。基尼指數反映的是從資料集d中隨機抽取兩個樣本,其類別標記不一致的概率。因此基尼指數越少,資料集d包含的資訊量越少。cart在候選特徵集中選取乙個特徵,使得劃分後基尼指數最小。
決策樹防止過擬合的方法分別是:
實際經驗表明,決策樹劃分標準的選擇,如資訊增益、資訊增益率、基尼指數雖然對決策樹的深度有較大影響,但對泛化效能影響有限。而剪枝對決策樹泛化效能的影響是相當顯著的。
如前所述,訓練每個分類器的時候,每次從訓練資料集中取樣,用樣本集訓練基分類器。bagging是一種有放回的取樣。也就是訓練的時候使用了相互有交疊的子集。
adaboost演算法
輸入:訓練集d=;基學習演算法ε;訓練輪數t
過程: 1、d
1(x)
=1m
2、for t=1,2,3,…,t,do ht
=ε(d
,dt)
εt=px∼d
t(ht
(x)≠
f(x)
) if ε
t>
0.5,then break αt
=12l
n1−ε
tεt
dt+1
(x)=
dt(x
)zt×
{exp
(−αt
),if
ht(x
)=f(
x)ex
p(αt
),if
ht(x
)≠f(
x)end for
輸出:h(x
)=si
gn(σ
tt=1
αtht
(x))
整合學習概述
整合學習有兩個分類,乙個是個體學習器存在強依賴關係 必須序列生成的序列化方法,以boosting為代表。另外一種是個體學習器不存在強依賴關係 可同時生成的並行化方法,以bagging和隨機森林 random forest 為代表。全稱 bootstrap aggregation 並行訓練一堆分類器 ...
機器學習常見演算法概述 整合學習總結
整合學習 多個弱分類器組合成乙個強分類器。1.adaboost 通過改變訓練樣本的權重 初始時權重相同,每次將前乙個分類器分類錯誤的那些樣本的權重增加,表現在分類誤差率的計算上 反覆訓練多個弱分類器,最後根據這些弱分類器的分類誤差率 權重 將他們線性組合到一起。其中分類誤差率越大權重越小。等價於損失...
機器學習筆記(七) 整合學習概述
整合學習 ensemble learning 是通過組合多個基分類器 baseclassifier 來完成學習任務。基分類器一般採用的是弱可學習分類器,通過整合學習,組合成乙個強可學習分類器。整合學習主要分為兩類 一是個體學習器間存在強大依賴關係 必須序列生成的序列化方法,代表演算法 boostin...