一萌业、集成學(xué)習(xí)的概述
????????集成學(xué)習(xí)(ensemble learning)本身不是一個(gè)單獨(dú)的機(jī)器學(xué)習(xí)算法,而是通過構(gòu)建并結(jié)合多個(gè)機(jī)器學(xué)習(xí)器來完成學(xué)習(xí)任務(wù)乡范。集成學(xué)習(xí)可以用于分類問題集成配名,回歸問題集成啤咽,特征選取集成,異常點(diǎn)檢測集成等等段誊。本文就對集成學(xué)習(xí)的原理做一個(gè)總結(jié)闰蚕。
????????集成學(xué)習(xí)解決的兩個(gè)問題:一是如何選擇若干個(gè)弱學(xué)習(xí)器,二是如何將這些弱學(xué)習(xí)器通過結(jié)合策略結(jié)合起來连舍。
二没陡、怎么得到個(gè)體弱學(xué)習(xí)器呢?
? ??????第一種就是所有的個(gè)體學(xué)習(xí)器都是一個(gè)種類的索赏,或者說是同質(zhì)的盼玄。比如都是決策樹個(gè)體學(xué)習(xí)器,或者都是神經(jīng)網(wǎng)絡(luò)個(gè)體學(xué)習(xí)器潜腻。
????????第二種是所有的個(gè)體學(xué)習(xí)器不全是一個(gè)種類的埃儿,或者說是異質(zhì)的。比如我們有一個(gè)分類問題融涣,對訓(xùn)練集采用支持向量機(jī)個(gè)體學(xué)習(xí)器童番,邏輯回歸個(gè)體學(xué)習(xí)器和樸素貝葉斯個(gè)體學(xué)習(xí)器來學(xué)習(xí),再通過某種結(jié)合策略來確定最終的分類強(qiáng)學(xué)習(xí)器威鹿。
? ? ? ? 對于集成算法一般會(huì)使用同質(zhì)的學(xué)習(xí)器剃斧。最常用的是CART決策樹和神經(jīng)網(wǎng)絡(luò)。同時(shí)我們按照各個(gè)學(xué)習(xí)器之間是否存在相互依賴關(guān)系來確定兩種集成算法:第一個(gè)是個(gè)體學(xué)習(xí)器之間存在強(qiáng)依賴關(guān)系忽你,一系列個(gè)體學(xué)習(xí)器基本都需要串行生成幼东,代表算法是boosting系列算法,第二個(gè)是個(gè)體學(xué)習(xí)器之間不存在強(qiáng)依賴關(guān)系科雳,一系列個(gè)體學(xué)習(xí)器可以并行生成根蟹,代表算法是bagging和隨機(jī)森林(Random Forest)系列算法。
二糟秘、集成學(xué)習(xí)的兩類算法
? ? ? ? 1.boosting的算法原理圖示:
? ? ? ? boosting的工作原理:基于初始帶權(quán)重的訓(xùn)練集訓(xùn)練出弱學(xué)習(xí)器1简逮,基于學(xué)習(xí)誤差率來更新樣本的權(quán)重,即增大誤分類樣本的權(quán)重尿赚,使得在后面更加關(guān)注誤分類點(diǎn)高的數(shù)據(jù)买决。基于更新后訓(xùn)練集訓(xùn)練弱學(xué)習(xí)器2吼畏,如此循環(huán)訓(xùn)練督赤。如果設(shè)置的迭代次數(shù)為T,那么當(dāng)n=T時(shí)結(jié)束訓(xùn)練泻蚊。最后通過一定的結(jié)合策略形成強(qiáng)學(xué)習(xí)器躲舌。
? ? ? ? boosting算法里最著名的兩個(gè)算法是Adaboost和提升樹(boost tree),提升樹中最常用的是梯度提升樹(Gradient Boosting Tree)。
? ? ? ? 注:此時(shí)訓(xùn)練集就是一個(gè)性雄,但是在不斷迭代的過程中不斷更新没卸。
? ? ? ? 2.bagging算法原理圖:? ??
? ? ? ? bagging算法的原理:不同于boosting羹奉,各個(gè)學(xué)習(xí)器之間沒有相互依賴關(guān)系。如果設(shè)置的迭代次數(shù)n_estimators=T,那么需要從訓(xùn)練集樣本中隨機(jī)取樣T次且并行地訓(xùn)練T個(gè)學(xué)習(xí)器约计。最后將訓(xùn)練好的學(xué)習(xí)器按照相應(yīng)策略結(jié)合得到強(qiáng)學(xué)習(xí)器诀拭。這里采用的隨機(jī)取樣的方式自助采樣法(Bootstap sampling),有放回的取樣煤蚌,所以有的數(shù)據(jù)被采樣m次但是有的數(shù)據(jù)一次都沒有取到耕挨,對于這樣的數(shù)據(jù)我們稱之為OOB。之后會(huì)介紹OOB可以用來估計(jì)模型的泛化能力尉桩,相當(dāng)于交叉驗(yàn)證筒占。
? ? ? ? 隨機(jī)森林 時(shí)bagging算法的特化進(jìn)階。特化是指隨機(jī)森林的弱學(xué)習(xí)器都是決策樹CART? 蜘犁;進(jìn)階? 是指不僅進(jìn)行訓(xùn)練集的隨機(jī)采樣而且進(jìn)行特征的隨機(jī)選擇(這樣可以達(dá)到降維的目的并且能給特征進(jìn)行重要性importance的評分)??
三翰苫、集成學(xué)習(xí)的結(jié)合策略
? ? ? ? 1.平均法
? ? ? ? 2.投票法
? ? ? ? 3.學(xué)習(xí)法
? ? ? ? ? 兩節(jié)的方法都是對弱學(xué)習(xí)器的結(jié)果做平均或者投票,相對比較簡單这橙,但是可能學(xué)習(xí)誤差較? ? ? ? 大奏窑,于是就有了學(xué)習(xí)法這種方法,對于學(xué)習(xí)法屈扎,代表方法是stacking埃唯,當(dāng)使用stacking的結(jié)合策略時(shí), 我們不是對弱學(xué)習(xí)器的結(jié)果做簡單的邏輯處理助隧,而是再加上一層學(xué)習(xí)器筑凫,也就是 說滑沧,我們將訓(xùn)練集弱學(xué)習(xí)器的學(xué)習(xí)結(jié)果作為輸入并村,將訓(xùn)練集的輸出作為輸出,重新訓(xùn)練一個(gè)? ? ? ? ? ? ?學(xué)習(xí)器來得到最終結(jié)果滓技。
? ? ? ? ? ?在這種情況下哩牍,我們將弱學(xué)習(xí)器稱為初級學(xué)習(xí)器,將用于結(jié)合的學(xué)習(xí)器稱為次級學(xué)習(xí)器令漂。對于測試集膝昆,我們首先用初級學(xué)習(xí)器預(yù)測一次,得到次級學(xué)習(xí)器的輸入樣本叠必,再用次級學(xué)習(xí)器預(yù)測一次荚孵,得到最終的預(yù)測結(jié)果。