隨機森林, Random Forest


隨機森林的優點 (隨機森林(Random forest,RF)的生成方法以及優缺點_zhongjunlang的專欄)

  • 在當前所有算法中,具有較高的准確率, 即使存在缺失值問題
  • 能夠有效地運行在大數據集上
  • 能夠處理具有高維特征的輸入樣本,而且不需要降維
  • 對於不平衡數據集來說,隨機森林可以平衡誤差。當存在分類不平衡的情況時,隨機森林能提供平衡數據集誤差的有效方法。
  • 能夠評估各個特征在分類問題上的重要性
  • 在訓練過程中,能夠檢測到feature之間的影響(?)。
  • 在生成過程中,能夠獲取到內部生成誤差的一種無偏估計($errOOB$)
  • 隨機森林抗過擬合能力比較強(雖然理論上說隨機森林不會產生過擬合現象,但是在現實中噪聲是不能忽略的,增加樹雖然能夠減小過擬合,但沒有辦法完全消除過擬合,無論怎么增加樹都不行,再說樹的數目也不可能無限增加的。)
  • 隨機森林能夠解決分類與回歸兩種類型的問題,並在這兩方面都有相當好的估計表現。(雖然RF能做回歸問題,但通常都用RF來解決分類問題)。
  • 訓練速度快,容易做成並行化方法(訓練時,樹與樹之間是相互獨立的)。

 

隨機森林中的隨機是什么意思?(隨機森林(Random forest,RF)的生成方法以及優缺點_zhongjunlang的專欄)
隨機性主要體現在兩個方面:

  1. 隨機采樣:隨機森林在計算每棵樹時,從全部訓練樣本(樣本數為n)中選取一個可能有重復的、大小同樣為n的數據集進行訓練(即booststrap采樣)。
  2. 特征選取的隨機性:在每個節點隨機選取所有特征的一個子集,用來計算最佳分割方式。

 

特征重要性評估

用隨機森林進行特征重要性評估的思想其實很簡單,說白了就是看看每個特征在隨機森林中的每顆樹上做了多大的貢獻,然后取個平均值。

通常可以用基尼指數(Gini index)或者袋外數據(OOB)錯誤率作為評價指標來衡量。

1. 袋外數據錯誤率 (利用隨機森林進行特征選擇_布紙所雲-CSDN博客)
計算某個特征X的重要性時,具體步驟如下:

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

所謂袋外數據是指,每次建立決策樹時,通過重復抽樣得到一個數據用於訓練​決策樹,這時還有大約1/3的數據*沒有被利用,沒有參與決策樹的建立。這部分數據可以用於對決策樹的性能進行評估,計算模型的預測錯誤率,稱為袋外數據誤差。

* 一個樣本是OOB樣本的概率約為$\frac{1}{e}$

RF中每次抽樣N個樣本訓練每一棵樹gt,原始的數據集中將有近1/e的樣本未參與其訓練;因此可以使用這部分數據對此棵樹gt進行validation。

​經過證明(?)$errOOB$是測試集誤差(泛化誤差)的無偏估計,所以在隨機森林算法中不需要再進行交叉驗證或者單獨的驗證集.

[Machine Learning & Algorithm] 隨機森林(Random Forest) - Poll的筆記 - 博客園 (cnblogs.com)

我們知道,在構建每棵樹時,我們對訓練集使用了不同的bootstrap sample(隨機且有放回地抽取)。所以對於每棵樹而言(假設對於第k棵樹),大約有1/3的訓練實例沒有參與第k棵樹的生成,它們稱為第k棵樹的oob樣本

  而這樣的采樣特點就允許我們進行oob估計,它的計算方式如下(note:以樣本為單位):

  1)對每個樣本,計算將它視作oob樣本的樹對它的分類情況(約1/3的樹);

  2)然后以簡單多數投票作為該樣本的分類結果;

  3)最后用誤分個數占樣本總數的比率作為隨機森林的oob誤分率。

 

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

另一種完全不同的說法 (RandomForest的out of bag estimate 及Feature selection 具體作法)

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

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

1.3 ​假設森林中有$N$棵樹,則特征X的重要性=$\sum_{i=1}^N (errOOB_{2, i}−errOOB_{1, i}) / N$。這個數值之所以能夠說明特征的重要性是因為,如果加入隨機噪聲后,袋外數據准確率大幅度下降(即$errOOB_2$大幅度上升),說明這個特征對於樣本的預測結果有很大影響,進而說明重要程度比較高。

​2. 特征選擇 (隨機森林進行特征選擇_zrh_CSDN的博客)

在特征重要性的基礎上,特征選擇的步驟如下:

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

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

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

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


 


免責聲明!

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



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