隨機森林,隨機森林中進行特徵重要性

2021-09-25 04:51:10 字數 847 閱讀 1052

用有抽樣放回的方法(bootstrap)從樣本集中選取n個樣本作為乙個訓練集

用抽樣得到的樣本集生成一棵決策樹。在生成的每乙個結點: 

隨機不重複地選擇d個特徵

利用這d個特徵分別對樣本集進行劃分,找到最佳的劃分特徵(可用基尼係數、增益率或者資訊增益判別)

重複步驟1到步驟2共k次,k即為隨機森林中決策樹的個數。

用訓練得到的隨機森林對測試樣本進行**,並用票選法決定**的結果。

下圖比較直觀地展示了隨機森林演算法(出自文獻2)

現實情況下,乙個資料集中往往有成百上前個特徵,如何在其中選擇比結果影響最大的那幾個特徵,以此來縮減建立模型時的特徵數是我們比較關心的問題。這樣的方法其實很多,比如主成分分析,lasso等等。不過,這裡我們要介紹的是用隨機森林來對進行特徵篩選。 

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

好了,那麼這個貢獻是怎麼乙個說法呢?通常可以用基尼指數(gini index)或者袋外資料(oob)錯誤率作為評價指標來衡量

判斷每個特徵在隨機森林中的每顆樹上做了多大的貢獻,然後取個平均值,最後比一比特徵之間的貢獻大小。其中關於貢獻的計算方式可以是基尼指數或袋外資料錯誤率

隨機森林進行特徵選取

在隨機森林中某個特徵x的重要性的計算方式如下 首先是對隨機森林的每一顆決策樹,使用對應的oob 袋外資料 資料來進行計算他的袋外的資料誤差,記做error1 這樣每個決策樹都可以得到乙個error1,k顆數就有k個error1.然後就是要遍歷所有的特徵,來考察該特徵的重要性,考察重要性的方式是,隨機...

利用隨機森林對特徵重要性進行評估

我們知道,隨機森林大致可以看成是從生成的多個決策樹種挑選最優的那一棵。所以在訓練的過程中就會按照不同特徵維度的先後劃分方式來建立決策樹。因此,最優那棵樹所對應的特徵劃分順序也就代表著特徵的重要程度。看例子 from sklearn.datasets import load wine from skl...

隨機森林特徵篩選

剛看到一篇介紹特徵篩選的文章,裡面介紹基於模型的特徵排名,附加了乙個隨機森林的python程式,感覺挺好,趕緊mark下來。程式使用了skliearn機器學習庫,資料集為boston房屋 資料,源程式如下所示 fromsklearn.cross validationimportcross val s...