集成学习算法之boosting、bagging和随机森林算法原理
集成學(xué)習(xí)的定義
集成學(xué)習(xí)的主要思路是先通過(guò)一定的規(guī)則生成多個(gè)學(xué)習(xí)器,再采用某種集成策略進(jìn)行組合,最后綜合判斷輸出最終結(jié)果。一般而言,通常所說(shuō)的集成學(xué)習(xí)中的多個(gè)學(xué)習(xí)器都是同質(zhì)的"弱學(xué)習(xí)器"。基于該弱學(xué)習(xí)器,通過(guò)樣本集擾動(dòng)、輸入特征擾動(dòng)、輸出表示擾動(dòng)、算法參數(shù)擾動(dòng)等方式生成多個(gè)學(xué)習(xí)器,進(jìn)行集成后獲得一個(gè)精度較好的"強(qiáng)學(xué)習(xí)器"。
舉例說(shuō)明:以三分類問(wèn)題為例,假如有 N 個(gè)分類器相互獨(dú)立,錯(cuò)誤率都為 P , 使用簡(jiǎn)單的投票法組合分類器,其分類器的錯(cuò)誤率為
從上式可以看出P<0.5時(shí),錯(cuò)誤率Perror隨著N的增大而減小,如果每個(gè)分類器的錯(cuò)誤率都小于0.5,且相互獨(dú)立,則集成學(xué)習(xí)器個(gè)數(shù)越多,錯(cuò)誤率越小,當(dāng)N無(wú)窮大時(shí),錯(cuò)誤率接近于零。
?bagging 算法
1.1定義:
從上圖可以看出,Bagging的弱學(xué)習(xí)器之間的確沒(méi)有boosting那樣的聯(lián)系。它的特點(diǎn)在“隨機(jī)采樣”。
隨機(jī)采樣(bootsrap)就是從我們的訓(xùn)練集里面采集固定個(gè)數(shù)的樣本,但是每采集一個(gè)樣本后,都將樣本放回。也就是說(shuō),之前采集到的樣本在放回后有可能繼續(xù)被采集到。對(duì)于我們的Bagging算法,一般會(huì)隨機(jī)采集和訓(xùn)練集樣本數(shù)m一樣個(gè)數(shù)的樣本。這樣得到的采樣集和訓(xùn)練集樣本的個(gè)數(shù)相同,但是樣本內(nèi)容不同。如果我們對(duì)有m個(gè)樣本訓(xùn)練集做T次的隨機(jī)采樣,,則由于隨機(jī)性,T個(gè)采樣集各不相同。
對(duì)于一個(gè)樣本,它在某一次含m個(gè)樣本的訓(xùn)練集的隨機(jī)采樣中,每次被采集到的概率是1/m。不被采集到的概率為1?1/m。如果m次采樣都沒(méi)有被采集中的概率是(1-1/m)^m。當(dāng)m→∞時(shí)(1-m/1)^m→1/e?0.368。也就是說(shuō),在bagging的每輪隨機(jī)采樣中,訓(xùn)練集中大約有36.8%的數(shù)據(jù)沒(méi)有被采樣集采集中。
1.2 算法流程
輸入為樣本集D={(x,y1),(x2,y2),...(xm,ym)},弱學(xué)習(xí)器算法, 弱分類器迭代次數(shù)T。
輸出為最終的強(qiáng)分類器f(x)
1)對(duì)于t=1,2...,T:
a)對(duì)訓(xùn)練集進(jìn)行第t次隨機(jī)采樣,共采集m次,得到包含m個(gè)樣本的采樣集DtDt
b)用采樣集Dt訓(xùn)練第t個(gè)弱學(xué)習(xí)器Gt(x)
2) 如果是分類算法預(yù)測(cè),則T個(gè)弱學(xué)習(xí)器投出最多票數(shù)的類別或者類別之一為最終類別。如果是回歸算法,T個(gè)弱學(xué)習(xí)器得到的回歸結(jié)果進(jìn)行算術(shù)平均得到的值為最終的模型輸出
boosting算法
2.1 原理
?
(1)初始化訓(xùn)練數(shù)據(jù)(每個(gè)樣本)的權(quán)值分布:如果有N個(gè)樣本,則每一個(gè)訓(xùn)練的樣本點(diǎn)最開(kāi)始時(shí)都被賦予相同的權(quán)重:1/N。
(2)訓(xùn)練弱分類器。具體訓(xùn)練過(guò)程中,如果某個(gè)樣本已經(jīng)被準(zhǔn)確地分類,那么在構(gòu)造下一個(gè)訓(xùn)練集中,它的權(quán)重就被降低;相反,如果某個(gè)樣本點(diǎn)沒(méi)有被準(zhǔn)確地分類,那么它的權(quán)重就得到提高。同時(shí),得到弱分類器對(duì)應(yīng)的話語(yǔ)權(quán)。然后,更新權(quán)值后的樣本集被用于訓(xùn)練下一個(gè)分類器,整個(gè)訓(xùn)練過(guò)程如此迭代地進(jìn)行下去。
(3)將各個(gè)訓(xùn)練得到的弱分類器組合成強(qiáng)分類器。各個(gè)弱分類器的訓(xùn)練過(guò)程結(jié)束后,分類誤差率小的弱分類器的話語(yǔ)權(quán)較大,其在最終的分類函數(shù)中起著較大的決定作用,而分類誤差率大的弱分類器的話語(yǔ)權(quán)較小,其在最終的分類函數(shù)中起著較小的決定作用。換言之,誤差率低的弱分類器在最終分類器中占的比例較大,反之較小。
2.2算法流程
第一步:
初始化訓(xùn)練數(shù)據(jù)(每個(gè)樣本)的權(quán)值分布。每一個(gè)訓(xùn)練樣本,初始化時(shí)賦予同樣的權(quán)值w=1/N。N為樣本總數(shù)。
D1表示,第一次迭代每個(gè)樣本的權(quán)值。w11表示,第1次迭代時(shí)的第一個(gè)樣本的權(quán)值。
N為樣本總數(shù)。
第二步:進(jìn)行多次迭代,m=1,2….M。m表示迭代次數(shù)。
a)使用具有權(quán)值分布Dm(m=1,2,3…N)的訓(xùn)練樣本集進(jìn)行學(xué)習(xí),得到弱的分類器。
該式子表示,第m次迭代時(shí)的弱分類器,將樣本x要么分類成-1,要么分類成1.那么根據(jù)什么準(zhǔn)則得到弱分類器?
準(zhǔn)則:該弱分類器的誤差函數(shù)最小,也就是分錯(cuò)的樣本對(duì)應(yīng)的 權(quán)值之和,最小
該式是隨em減小而增大。即誤差率小的分類器,在最終分類器的 重要程度大。
c)更新訓(xùn)練樣本集的權(quán)值分布。用于下一輪迭代。其中,被誤分的樣本的權(quán)值會(huì)增大,被正確分的權(quán)值減小。
Dm+1是用于下次迭代時(shí)樣本的權(quán)值,Wm+1,i是下一次迭代時(shí),第i個(gè)樣本的權(quán)值。
??? 其中,yi代表第i個(gè)樣本對(duì)應(yīng)的類別(1或-1),Gm(xi)表示弱分類器對(duì)樣本xi的分類(1或-1)。若果分對(duì),yi*Gm(xi)的值為1,反之為-1。其中Zm是歸一化因子,使得所有樣本對(duì)應(yīng)的權(quán)值之和為1.
第三步迭代完成后,組合弱分類器。
加個(gè)sign函數(shù),該函數(shù)用于求數(shù)值的正負(fù)。數(shù)值大于0,為1。小于0,為-1.等于0,為0.得到最終的強(qiáng)分類器G(x)
優(yōu)點(diǎn)
(1)精度很高的分類器
(2)提供的是框架,可以使用各種方法構(gòu)建弱分類器
(3)簡(jiǎn)單,不需要做特征篩選
(4)不用擔(dān)心過(guò)度擬合
隨機(jī)森林
定義:隨機(jī)森林指的是利用多棵樹(shù)對(duì)樣本進(jìn)行訓(xùn)練并預(yù)測(cè)的一種分類器
舉例說(shuō)明:隨機(jī)森林中有許多的分類樹(shù)。我們要將一個(gè)輸入樣本進(jìn)行分類,我們需要將輸入樣本輸入到每棵樹(shù)中進(jìn)行分類。打個(gè)形象的比喻:森林中召開(kāi)會(huì)議,討論某個(gè)動(dòng)物到底是老鼠還是松鼠,每棵樹(shù)都要獨(dú)立地發(fā)表自己對(duì)這個(gè)問(wèn)題的看法,也就是每棵樹(shù)都要投票。該動(dòng)物到底是老鼠還是松鼠,要依據(jù)投票情況來(lái)確定,獲得票數(shù)最多的類別就是森林的分類結(jié)果。森林中的每棵樹(shù)都是獨(dú)立的,99.9%不相關(guān)的樹(shù)做出的預(yù)測(cè)結(jié)果涵蓋所有的情況,這些預(yù)測(cè)結(jié)果將會(huì)彼此抵消。少數(shù)優(yōu)秀的樹(shù)的預(yù)測(cè)結(jié)果將會(huì)超脫于蕓蕓“噪音”,做出一個(gè)好的預(yù)測(cè)。將若干個(gè)弱分類器的分類結(jié)果進(jìn)行投票選擇,從而組成一個(gè)強(qiáng)分類器,這就是隨機(jī)森林bagging的思想(關(guān)于bagging的一個(gè)有必要提及的問(wèn)題:bagging的代價(jià)是不用單棵決策樹(shù)來(lái)做預(yù)測(cè),具體哪個(gè)變量起到重要作用變得未知,所以bagging改進(jìn)了預(yù)測(cè)準(zhǔn)確率但損失了解釋性。)。下圖可以形象地描述這個(gè)情況:
?
?
?
總結(jié)
以上是生活随笔為你收集整理的集成学习算法之boosting、bagging和随机森林算法原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: string转map集合_集合(下)
- 下一篇: Vonage再度入围IDC CPaaS“