Random forests,又叫random decision forests,它是一個(gè)包含多個(gè)決策樹(shù)的分類(lèi)器魔招,并且其輸出的類(lèi)別是由個(gè)別樹(shù)輸出的類(lèi)別的眾數(shù)而定辰晕。
上世紀(jì)八十年代Breiman等人發(fā)明分類(lèi)樹(shù)的算法(Breiman et al. 1984),通過(guò)反復(fù)二分?jǐn)?shù)據(jù)進(jìn)行分類(lèi)或回歸明郭,計(jì)算量大大降低。2001年Breiman把分類(lèi)樹(shù)組合成隨機(jī)森林(Breiman 2001a)澈蟆,即在變量(列)的使用和數(shù)據(jù)(行)的使用上進(jìn)行隨機(jī)化趟径,生成很多分類(lèi)樹(shù)瘪吏,再匯總分類(lèi)樹(shù)的結(jié)果。
1. 算法:
它根據(jù)下列算法而建造每棵樹(shù)蜗巧,具有雙重隨機(jī):
-用N來(lái)表示訓(xùn)練用例(樣本)的個(gè)數(shù)掌眠,M表示特征數(shù)目。
-輸入特征數(shù)目m幕屹,用于確定決策樹(shù)上一個(gè)節(jié)點(diǎn)的決策結(jié)果蓝丙;其中m應(yīng)遠(yuǎn)小于M。
-從N個(gè)訓(xùn)練用例(樣本)中以有放回抽樣的方式望拖,取樣N次渺尘,形成一個(gè)訓(xùn)練集(即bootstrap取樣),并用未抽到的用例(樣本)作預(yù)測(cè)说敏,評(píng)估其誤差鸥跟。
-對(duì)于每一個(gè)節(jié)點(diǎn),隨機(jī)選擇m個(gè)特征盔沫,決策樹(shù)上每個(gè)節(jié)點(diǎn)的決定都是基于這些特征確定的医咨。根據(jù)這m個(gè)特征,計(jì)算其最佳的分裂方式架诞。
-每棵樹(shù)都會(huì)完整成長(zhǎng)而不會(huì)剪枝(Pruning拟淮,這有可能在建完一棵正常樹(shù)狀分類(lèi)器后會(huì)被采用)。
2. 隨機(jī)森林的優(yōu)點(diǎn):
a. 在數(shù)據(jù)集上表現(xiàn)良好谴忧,兩個(gè)隨機(jī)性的引入很泊,使得隨機(jī)森林不容易陷入過(guò)擬合
b. 在當(dāng)前的很多數(shù)據(jù)集上,相對(duì)其他算法有著很大的優(yōu)勢(shì)沾谓,兩個(gè)隨機(jī)性的引入委造,使得隨機(jī)森林具有很好的抗噪聲能力
c. 它能夠處理很高維度(feature很多)的數(shù)據(jù),并且不用做特征選擇搏屑,對(duì)數(shù)據(jù)集的適應(yīng)能力強(qiáng):既能處理離散型數(shù)據(jù)争涌,也能處理連續(xù)型數(shù)據(jù),數(shù)據(jù)集無(wú)需規(guī)范化
d. 可生成一個(gè)Proximities=(pij)矩陣辣恋,用于度量樣本之間的相似性: pij=aij/N, aij表示樣本i和j出現(xiàn)在隨機(jī)森林中同一個(gè)葉子結(jié)點(diǎn)的次數(shù)亮垫,N隨機(jī)森林中樹(shù)的顆數(shù)
e. 在創(chuàng)建隨機(jī)森林的時(shí)候,對(duì)generlization error使用的是無(wú)偏估計(jì)
f. 訓(xùn)練速度快伟骨,可以得到變量重要性排序(兩種:基于OOB誤分率的增加量和基于分裂時(shí)的GINI下降量
g. 在訓(xùn)練過(guò)程中饮潦,能夠檢測(cè)到feature間的互相影響
h. 容易做成并行化方法
i. 實(shí)現(xiàn)比較簡(jiǎn)單
參考來(lái)源:
1. http://www.zilhua.com/629.html
2. https://en.wikipedia.org/wiki/Random_forest