RandomForest的out of bag estimate 及Feature selection 具體作法


一、Out of bag estimate(OOB)

1、OOB sample number

RF是bagging的一種,在做有放回的bootstrap時,由抽樣隨機性可得到(其中1/e可由高數中的洛必達法則得到):

RF中每次抽樣N個樣本訓練每一棵decision tree(gt),對於此棵樹gt,原始的數據集中將有近1/e(33.3%)的樣本未參與其訓練;因此可以使用這部分數據對此棵樹gt進行validation。(下圖中紅色星號表示此樣本未參與某棵決策樹gt訓練)

 

2、OOB如何做validation

RF是通過多個基學習器進行組合得到整體的性能,即基學習器性能不高但經過組合卻仍可能得到高性能(三個臭皮匠,賽過諸葛亮);因此,對於RF,應當是對整體的性能進行validation,而不是依次對單個基學習器進行validation。那么,如何對一個訓練好的RF進行validation呢? 

具體作法:

(1)對於數據集中每一個樣本(xi, yi),將所有未使用該樣本(xi, yi)進行訓練得到的決策樹篩選出來得到幾個包含部分決策樹的子模型集合M;

(2)然后在樣本(xi, yi)上,使用模型集合M進行誤差計算,即得到使用樣本(xi, yi)進行validation的結果;(此步驟與使用留一法進行validation相似)

(3)重復步驟(2),依次計算在剩余的樣本中使用每個樣本進行validation的結果;

(4)對所有樣本進行validation的結果進行求和取平均,作為RF模型最終的validation的結果。

具體表達式如下圖:

 

特點:不需要額外划分一部分的validation set,RF可以做self-validation

 

二、RF如何做Feature Selection

1、由於在有限的樣本數目下,用大量的特征來設計分類器計算開銷太大而且分類性能差。因此,選取出對於建立模型性能較好的特征能夠減少復雜度和工作量。

 

2、優缺點

優點:

(1)得到更簡單的假設空間和更高效率的預測;

(2)在某種程度上相當於移除了部分噪聲,更不容易overfitting,提高了模型的泛化性能;

(3)提高了模型的可解釋性;

缺點:

(1)特征選擇的工作需要花費較大的計算量(特征之間的交互關系,導致特征組合計算爆炸);

(2)如果選擇的特征是錯誤的,那么也可能導致overfitting;

(3)如果選擇的特征是錯誤的,那么會導致模型的可解釋性錯誤;

 

3、Feature selection by importance (為解決特征組合爆炸問題,不考慮特征之間的交互關系,而是考慮給每個特征進行重要性打分)

(1) 如何衡量一個特征的好壞

  出發點:如果某個特征是重要的,那么當在此特征的數據分布式引入一定的噪聲,那么用僅對此特征進行變化之后的數據進行RF訓練,模型的性能應當會有較大的變化(較明顯地變差);反之,如果某個特征是不重要的,則重新訓練后的模型性能變化不大。

  要進行特征選擇,得有一個對特征好壞的度量,RF對於特征好壞的度量是基於:

  A. 對每一顆決策樹,選擇相應的袋外數據(out of bag,OOB)​計算袋外數據誤差,記為errOOB1. 

  B. 隨機對袋外數據OOB所有樣本的特征X加入噪聲干擾(可以隨機改變樣本在特征X處的值),再次計算袋外數據誤差,記為errOOB2。

  C. 假設森林中有N棵樹,則特征X的重要性 importance=∑(errOOB2-errOOB1)/N。這個數值之所以能夠說明特征的重要性是因為,如果加入隨機噪聲后,袋外數據准確率大幅度下降(即errOOB2上升),說明這個特征對於樣本的預測結果有很大影響,進而說明重要程度比較高。

(2)特征選擇過程

  A. 計算每個特征的重要性,並按降序排序

  B. 確定要剔除的比例,依據特征重要性剔除相應比例的特征,得到一個新的特征集

  C. 用新的特征集重復上述過程,直到剩下m個特征(m為提前設定的值)

  D. 根據上述過程中得到的各個特征集和特征集對應的袋外誤差率,選擇袋外誤差率最低的特征集

 

4、 RF在實際計算特征重要性的處理tricks

(1)對於計算某個特征的重要性時,RF不采用直接修改所有樣本在該特征的值或在該特征上引入噪聲的方法;而是采用permutation(洗牌)的方法,例如總共有5個樣本,某個特征Xi在所有樣本上的取值情況為集合A=(0,1,2,3,4),則permutation的作法是將集合A進行重洗,然后再隨機重新分配給每一個樣本再特征Xi上的值。(就好像是52個人每人手里拿了一張牌,permutation就好比是個裁判,把52張牌收集起來重新洗亂后再分給52個人)

 

(2)RF如何做permutation

原始的permutation是需要在訓練數據上做的,並且每次需要重新訓練一個模型,即

RF則使用OOB的那部分數據上進行permutation,然后計算每一個特征的重要性。

優點:不需要在原始數據上做permutation,因而也不需要重新訓練模型;訓練完一個RF模型后,即可使用該模型來計算特征重要性。

 

(3)RF做特征選擇概括

 

 

 5、如何選擇RF中樹的棵樹

  (1)大部分的理論都推薦使用樹的棵樹越多,性能越好。(使用越多的樹,能夠使得模型更加穩定)

(2)一些啟發式的思路

  A. 如果整個隨機過程太不穩定,可能需要很多樹;

  B. 如果加減一棵樹,模型的性能的表現不穩定,則可能多加樹的棵樹效果更好。

 

參考資料:

1. https://blog.csdn.net/liangjun_feng/article/details/80152796

2. 《機器學習技法》視頻資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM