RF原理
隨機森林中每顆樹的生成:
- 1)如果訓練集大小為N腻扇,對于每棵樹而言,隨機且有放回地從訓練集中的抽取N個訓練樣本(這種采樣方式稱為bootstrap sample方法)戈轿,作為該樹的訓練集;
- 2)如果每個樣本的特征維度為M,指定一個常數(shù)m<<M,隨機地從M個特征中選取m個特征子集煮甥,每次樹進行分裂時,從這m個特征中選擇最優(yōu)的藕赞;
- 3)每棵樹都盡最大程度的生長成肘,并且沒有剪枝過程。
Bagging集成學習斧蜕,投票或加權投票來決定分類双霍。
幾個問題
為什么要隨機抽樣訓練集?(add @2016.05.28)
- 如果不進行隨機抽樣惩激,每棵樹的訓練集都一樣店煞,那么最終訓練出的樹分類結果也是完全一樣的,這樣的話完全沒有bagging的必要风钻;
為什么要有放回地抽樣顷蟀?(add @2016.05.28)
- 我理解的是這樣的:如果不是有放回的抽樣,那么每棵樹的訓練樣本都是不同的骡技,都是沒有交集的鸣个,這樣每棵樹都是"有偏的"羞反,都是絕對"片面的"(當然這樣說可能不對),也就是說每棵樹訓練出來都是有很大的差異的囤萤;而隨機森林最后分類取決于多棵樹(弱分類器)的投票表決昼窗,這種表決應該是"求同",因此使用完全不同的訓練集來訓練每棵樹這樣對最終分類結果是沒有幫助的涛舍,這樣無異于是"盲人摸象"澄惊。
這兩個隨機有什么好處?
- 兩個隨機性的引入對隨機森林的分類性能至關重要富雅。由于它們的引入掸驱,使得隨機森林不容易陷入過擬合,并且具有很好得抗噪能力(比如:對缺省值不敏感)没佑。
隨機森林分類效果與什么有關毕贼?
- 森林中任意兩棵樹的相關性:相關性越大,錯誤率越大蛤奢;
- 森林中每棵樹的分類能力:每棵樹的分類能力越強鬼癣,整個森林的錯誤率越低。
- 減小特征選擇個數(shù)m啤贩,樹的相關性和分類能力也會相應的降低待秃;增大m,兩者也會隨之增大瓜晤。所以關鍵問題是如何選擇最優(yōu)的m(或者是范圍)锥余,這也是隨機森林唯一的一個參數(shù)。
袋外錯誤率--近似于交叉驗證
構建隨機森林的關鍵問題就是如何選擇最優(yōu)的m痢掠,要解決這個問題主要依據(jù)計算袋外錯誤率oob error(out-of-bag error)驱犹。
我們知道,在構建每棵樹時足画,我們對訓練集使用了不同的bootstrap sample(隨機且有放回地抽刃劬浴)。所以對于每棵樹而言(假設對于第k棵樹)淹辞,大約有1/3的訓練實例沒有參與第k棵樹的生成医舆,它們稱為第k棵樹的oob樣本。
而這樣的采樣特點就允許我們進行oob估計象缀,它的計算方式如下:
- 對每個樣本蔬将,計算它作為oob樣本的樹對它的分類情況(約1/3的樹);
2.然后以簡單多數(shù)投票作為該樣本的分類結果央星;
- 最后用誤分個數(shù)占樣本總數(shù)的比率作為隨機森林的oob誤分率霞怀。
Feature Importance函數(shù)
在特征選擇的許多方法中,我們可以使用隨機森林模型中的特征重要屬性來篩選特征莉给,并得到其與分類的相關性毙石。
由于隨機森林存在的固有隨機性廉沮,該模型可能每次給予特征不同的重要性權重。但是通過多次訓練該模型徐矩,即每次通過選取一定量的特征與上次特征中的交集進行保留滞时,以此循環(huán)一定次數(shù),從而我們最后可以得到一定量對分類任務的影響有重要貢獻的特征滤灯。
具體來說坪稽,在隨機森林中某個特征X的重要性的計算方法如下:
1:對于隨機森林中的每一顆決策樹,使用相應的OOB(袋外數(shù)據(jù))數(shù)據(jù)來計算它的袋外數(shù)據(jù)誤差,記為errOOB1.
2: 隨機地對袋外數(shù)據(jù)OOB所有樣本的特征X加入噪聲干擾(就可以隨機的改變樣本在特征X處的值),再次計算它的袋外數(shù)據(jù)誤差,記為errOOB2.
3:假設隨機森林中有Ntree棵樹,那么對于特征X的重要性=∑(errOOB2-errOOB1)/Ntree,之所以可以用這個表達式來作為相應特征的重要性的度量值是因為:若給某個特征隨機加入噪聲之后,袋外的準確率大幅度降低,則說明這個特征對于樣本的分類結果影響很大,也就是說它的重要程度比較高。