1. bagging算法流程
輸入為樣本集D={(x,y1),(x2,y2),...(xm,ym)},弱學(xué)習(xí)器算法, 弱分類器迭代次數(shù)T。
輸出為最終的強分類器f(x)
1)對于t=1,2...,T:
a)對訓(xùn)練集進行第t次隨機采樣(有放回),共采集m次,得到包含m個樣本的采樣集Dt
b)用采樣集Dt訓(xùn)練第t個弱學(xué)習(xí)器Gt(x)
2)如果是分類算法預(yù)測,則T個弱學(xué)習(xí)器投出最大多票數(shù)的類別或者類別之一為最終類別。如果是回歸算法,T個弱學(xué)習(xí)器得到的回歸結(jié)果進行算術(shù)平均得到的值為最終的模型輸出
2、隨機森林算法
理解了bagging算法,隨機森林(Random Forest,以下簡稱RF)就好理解了。它是Bagging算法的進化版,也就是說,它的思想仍然是bagging,但是進行了獨有的改進。我們現(xiàn)在就來看看RF算法改進了什么。
首先,RF使用了CART決策樹作為弱學(xué)習(xí)器,這讓我們想到了梯度提示樹GBDT。
第二,在使用決策樹的基礎(chǔ)上,RF對決策樹的建立做了改進,對于普通的決策樹,我們會在節(jié)點上所有的n個樣本特征中選擇一個最優(yōu)的特征來做決策樹的左右子樹劃分,但是RF通過隨機選擇節(jié)點上的一部分樣本特征,這個數(shù)字小于n,假設(shè)為nsub,然后在這些隨機選擇的nsub個樣本特征中,選擇一個最優(yōu)的特征來做決策樹的左右子樹劃分。這樣進一步增強了模型的泛化能力。
如果nsub=n,則此時RF的CART決策樹和普通的CART決策樹沒有區(qū)別。nsub越小,則模型約健壯,當(dāng)然此時對于訓(xùn)練集的擬合程度會變差。也就是說nsub越小,模型的方差會減小,但是偏倚會增大。在實際案例中,一般會通過交叉驗證調(diào)參獲取一個合適的nsub的值。
除了上面兩點,RF和普通的bagging算法沒有什么不同, 下面簡單總結(jié)下RF的算法。
輸入為樣本集D={(x,y1),(x2,y2),...(xm,ym)},弱分類器迭代次數(shù)T。
輸出為最終的強分類器f(x)
1)對于t=1,2...,T:
a)對訓(xùn)練集進行第t次隨機采樣,共采集m次,得到包含m個樣本的采樣集Dt
b)用采樣集Dt訓(xùn)練第t個決策樹模型Gt(x),在訓(xùn)練決策樹模型的節(jié)點的時候, 在節(jié)點上所有的樣本特征中選擇一部分樣本特征, 在這些隨機選擇的部分樣本特征中選擇一個最優(yōu)的特征來做決策樹的左右子樹劃分
- 如果是分類算法預(yù)測,則T個弱學(xué)習(xí)器投出最多票數(shù)的類別或者類別之一為最終類別。如果是回歸算法,T個弱學(xué)習(xí)器得到的回歸結(jié)果進行算術(shù)平均得到的值為最終的模型輸出。
3、隨機森林小結(jié)
RF的算法原理也終于講完了,作為一個可以高度并行化的算法,RF在大數(shù)據(jù)時候大有可為。 這里也對常規(guī)的隨機森林算法的優(yōu)缺點做一個總結(jié)
優(yōu)點:
1)、高度并行化(最主要的優(yōu)點)
2)、由于可以隨機選擇決策樹劃分特征,這樣在樣本特征維度很高的時候,仍然能高效的訓(xùn)練模型
3)、在訓(xùn)練后可以給出各個特征對于輸出的重要性
4)、由于采用了隨機采樣,訓(xùn)練處的模型的方差小,泛化能力強
5)RF實現(xiàn)比較簡單
6)對部分特征缺失不敏感
缺點:
1)在某些噪音比較大的樣本上,RF模型容易陷入過擬合
2)取值劃分比較多的特征容易對RF的決策產(chǎn)生更大的影響。從而影響擬合的模型效果