在構建隨機森林的過程中,每一顆樹所使用的資料不同,這使得每一顆樹上的特徵重要性表現的都不同。所以要評估每個特徵在每棵樹上的重要度來作為特徵選擇的依據。
隨機森林衡量特徵重要度的方法主要有兩種,分別是gini係數,和袋外誤差率。
隨機森林的不純度常用gini /entropy /information gain測量,以gini係數為例:
將特徵重要性評分(feature importance measures)用vim表示,計算每個特徵的gini指數評分,即第j個特徵在rf所有決策樹中節點**不純度的平均改變量。
gini係數的計算公式如下,k代表有k個類別,pmk表示k的樣本權重。
特徵xj在結點m的重要度,定義為在結點m分支前後,gini指數的變化量。
vimjm
(gini)=gim-gil-gir
其中gil,gir表示結點m分枝後左右結點的gini係數。
具體步驟
對於隨機森林中的每一顆決策樹,使用相應的oob(袋外資料)資料來計算它的袋外資料誤差,記為error1.
隨機地對袋外資料oob所有樣本的某一特徵隨機改變,再次計算它的袋外資料誤差,記為error2.
隨機改變的方法有兩種:
1)是使用uniform或者gaussian抽取隨機值替換原特徵;
2)是通過permutation的方式將原來的所有n個樣本的第 i 個特徵值重新打亂分布(相當於重新洗牌),稱為隨機排序測試。該方法更推薦,因為保證了特徵在隨機改變前後的分布。
使用error1與error2的差來確定特徵的重要性,隨機改變之後誤差有巨大變化的特徵更為重要,該特徵對結果影響較高。
隨機森林 random forest
隨機森林是一種整合學習方法 ensemble learning 用於對資料進行分類 隨機森林的分類結果由眾多分類器的分類結果表決而得到 隨機森林的每個子分類器是決策樹 decision tree 隨機森林一般按以下幾個步驟來構造 第一步,假設我們的高光譜資料報含n個樣本,則我們隨機地有放回地抽取n次...
隨機森林 Random Forest
閱讀目錄 回到頂部 隨機森林非常像 機器學習實踐 裡面提到過的那個adaboost演算法,但區別在於它沒有迭代,還有就是森林裡的樹長度不限制。因為它是沒有迭代過程的,不像adaboost那樣需要迭代,不斷更新每個樣本以及子分類器的權重。因此模型相對簡單點,不容易出現過擬合。下面先來講講它的具體框架流...
隨機森林 Random Forest
隨機森林回歸 閱讀目錄 回到頂部 隨機森林非常像 機器學習實踐 裡面提到過的那個adaboost演算法,但區別在於它沒有迭代,還有就是森林裡的樹長度不限制。因為它是沒有迭代過程的,不像adaboost那樣需要迭代,不斷更新每個樣本以及子分類器的權重。因此模型相對簡單點,不容易出現過擬合。下面先來講講...