第13章 集成学习和随机森林
1.什么是集成學(xué)習(xí)?
kNN,邏輯回歸,SVM,決策樹,神經(jīng)網(wǎng)絡(luò),貝葉斯—>>用多數(shù)算法最終給出的結(jié)果當(dāng)做最終的決策依據(jù),投票:少數(shù)服從多數(shù) Voting Classifier(scikit-learn提供的接口,Voting Classifier分類器)
Voting Classifier:
1)少數(shù)服從多數(shù):hard voting
2)很多時(shí)候少數(shù)服從多數(shù)并不是最合理的,比如說專業(yè)人士的票的權(quán)值應(yīng)該更高一些,更合理的投票,應(yīng)該有權(quán)值。這時(shí)候就有了soft voting,soft voting要求集合的每一個(gè)模型都能估計(jì)概率:邏輯回歸算法本身就是基于概率模型創(chuàng)建的。使用predict_proba函數(shù),說明這個(gè)學(xué)習(xí)算法是可以估計(jì)概率的。
回顧分類算法,看是不是都支持估計(jì)概率。
1.邏輯回歸算法:本身就是基于概率模型,Sigmoid的函數(shù)就是在模擬使用我們的特征計(jì)算一個(gè)值,基于這個(gè)值的不同,相應(yīng)的它屬于某一類的概率是多少,所以邏輯回歸算法是可以預(yù)測(cè)我們分給某一類相應(yīng)的概率的;
2.kNN;
3.決策樹;
4.SVM:SVC中有一個(gè)probability;
soft voting classifier效果好,但是這些只是集成學(xué)習(xí)的入門方式,雖然我們集成了不同的算法,但是算法的種類再多它也是非常有限的,怎么才能集成更多的分類器為我們創(chuàng)建更多的分類結(jié)果?
2.Bagging and Pasting
雖然有很多機(jī)器學(xué)習(xí)算法,但是從投票的角度看,仍然不夠多,我們希望有更多的投票者,才能保證我們最終的結(jié)果更加的可信。概率論中有大數(shù)定理這一說,所以我們就要?jiǎng)?chuàng)建更多的子模型,集成更多子模型的意見。而且更加重要的是:子模型之間不能一致!子模型之間要有差異性。
1)如何創(chuàng)建差異性?–>>每個(gè)子模型只看樣本數(shù)據(jù)的一部分。
例如:一共有500個(gè)樣本數(shù)據(jù);每一個(gè)子模型只看100個(gè)樣本數(shù)據(jù)。每一個(gè)子模型所使用的算法可以是共同的一個(gè)算法,這樣就可以創(chuàng)建很多的子模型,而且這些子模型之間是存在差異性的,這是因?yàn)槊恳粋€(gè)子模型它所看的樣本數(shù)據(jù)時(shí)不一樣的100個(gè)樣本數(shù)據(jù),訓(xùn)練出來的這個(gè)模型肯定是有一定的差異性。—>>可能導(dǎo)致每一個(gè)子模型它的準(zhǔn)確率變得很低,集成學(xué)習(xí)集成了諸多的子模型來投票決定最終的分類結(jié)果,這個(gè)過程中每一個(gè)子模型并不需要太高的準(zhǔn)確率。
例子:每個(gè)子模型只有51%的準(zhǔn)確率。
如果我們只有1個(gè)子模型,整體準(zhǔn)確率:51%
如果我們只有3個(gè)子模型,整體準(zhǔn)確率:0.513+C32?0.512?0.49=51.5%\bf0.51^3+C_3^2\cdot0.51^2\cdot0.49=51.5 \%0.513+C32??0.512?0.49=51.5%
如果我們只有500個(gè)子模型,整體準(zhǔn)確率:∑i=1500C500i?0.51i?0.49500?i=65.6%\bf\sum_{i=1}^{500}C_{500}^i\cdot0.51^i\cdot0.49^{500-i}=65.6\%∑i=1500?C500i??0.51i?0.49500?i=65.6%
取樣:放回取樣(Bagging),不放回取樣(Pasting)
Bagging,更常用,產(chǎn)生的子模型更多,更隨機(jī)。統(tǒng)計(jì)學(xué)中放回取樣:bootstrap
選擇決策樹模型:這種非參數(shù)的學(xué)習(xí)方式更能產(chǎn)生出差異相對(duì)比較大的子模型,它里面有很多參數(shù)以及剪枝方式都能幫助使得集成的每一個(gè)模型更加有差異性,更加隨機(jī)。
3.更多和Bagging相關(guān)的內(nèi)容
**OOB **:Out of Bag,放回取樣有一定的概率導(dǎo)致一部分樣本很有可能沒有取到。平均大概有37%的樣本沒有取到,沒有取到的樣本通常叫做Out of Bag。
不使用測(cè)試數(shù)據(jù)集,而使用這部分沒有取到的樣本做測(cè)試/驗(yàn)證。oob_score_
Bagging的思路極易并行化處理,n_jobs,傳入-1時(shí),使用計(jì)算機(jī)所有的核。
其他產(chǎn)生差異化的方式:1)針對(duì)特征進(jìn)行隨機(jī)采樣(Random Subspaces);2)既針對(duì)樣本,又針對(duì)特征進(jìn)行隨機(jī)采樣(Random Patches)
4.隨機(jī)森林
Bagging:使用隨機(jī)取樣的方式,包括在特征空間中隨機(jī)取特征的方式來創(chuàng)建諸多的子模型,然后將他們集成在一起,這種方式就叫做Bagging。
隨機(jī)森林:在演示Bagging這種集成學(xué)習(xí)的方式的時(shí)候,使用的這個(gè)基礎(chǔ)的分類器(或者說基礎(chǔ)的評(píng)估的算法)都是決策樹,我們整個(gè)集成學(xué)習(xí)就相當(dāng)于集成了成百上千個(gè)決策樹,對(duì)于這樣的一個(gè)集成學(xué)習(xí)的模型通常叫做隨機(jī)森林(我們有很多樹,每一顆樹都是通過隨機(jī)取樣的方式來訓(xùn)練生成的,所以具有隨機(jī)性;這么多樹放在一起,就形成了森林)
Bagging,Base Estimator:Decision Tree ,
scikit-learn中封裝的隨機(jī)森林,決策樹在節(jié)點(diǎn)劃分上,在隨機(jī)的特征子集上尋找最優(yōu)劃分特征。增加了每一個(gè)子模型的隨機(jī)性。
Extra-Trees:和隨機(jī)森林相似的另外一種方法(極其隨機(jī)的森林:決策樹在節(jié)點(diǎn)的劃分上,使用隨機(jī)的特征和隨機(jī)的閾值)
特點(diǎn):提供額外的隨機(jī)性,抑制過擬合,但增大的bias(偏差),遏制的方差。需要根據(jù)實(shí)際情況進(jìn)行選擇。
優(yōu)點(diǎn):更快的訓(xùn)練速度。
5.Boosting
是另一種集成學(xué)習(xí)的思路,集成多個(gè)模型,和Bagging不同的是,Boosting每個(gè)模型之間不是彼此獨(dú)立的關(guān)系,而是一個(gè)相互增強(qiáng)的關(guān)系,集成多個(gè)模型,每個(gè)模型都在嘗試增強(qiáng)(boosting)整體的效果
舉例:
1)Ada Boosting
2)Gradient Boosting
訓(xùn)練一個(gè)模型m1,產(chǎn)生錯(cuò)誤e1;
針對(duì)e1訓(xùn)練第二個(gè)模型m2,產(chǎn)生錯(cuò)誤e2;
針對(duì)e2訓(xùn)練第三個(gè)模型m3,產(chǎn)生錯(cuò)誤e3;
最終預(yù)測(cè)結(jié)果是:m1+m2+m3…
6.Stacking
一種集成學(xué)習(xí)的思路,邏輯回歸解決的是一個(gè)分類的問題但是卻叫做邏輯回歸?邏輯回歸本質(zhì)上計(jì)算的是我們的樣本屬于某一類的概率是多少。
總結(jié)
以上是生活随笔為你收集整理的第13章 集成学习和随机森林的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 统计学习方法之机器学习相关理论
- 下一篇: AUC,KS