隨機森林特徵篩選

2021-06-28 18:05:59 字數 2065 閱讀 8979

剛看到一篇介紹特徵篩選的文章,裡面介紹基於模型的特徵排名,附加了乙個隨機森林的python程式,感覺挺好,趕緊mark下來。

程式使用了skliearn機器學習庫,資料集為boston房屋**資料,源程式如下所示:

fromsklearn.cross_validationimportcross_val_score, shufflesplit

fromsklearn.datasetsimportload_boston

fromsklearn.ensembleimportrandomforestregressor

#load boston housing dataset as an example

boston=load_boston()

x=boston["data"]

y=boston["target"]

names=boston["feature_names"]

rf=randomforestregressor(n_estimators=20, max_depth=4)

scores=

foriinrange(x.shape[1]):

score=cross_val_score(rf, x[:, i:i+1], y, scoring="r2",

cv=shufflesplit(len(x),3, .3))

round(np.mean(score),3), names[i]))

printsorted(scores, reverse=true)

結果如下:

[(0.636, 'lstat'), (0.59, 'rm'), (0.472, 'nox'), (0.369, 'indus'), (0.311, 'ptratio'), (0.24, 'tax'), (0.24, 'crim'), (0.185, 'rad'), (0.16, 'zn'), (0.087, 'b'), (0.062, 'dis'), (0.036, 'chas'), (0.027, 'age')]

隨機森林特徵選擇

隨機森林具有準確率高 魯棒性好 易於使用等優點,這使得它成為了目前最流行的機器學習演算法之一。隨機森林提供了兩種特徵選擇的方法 mean decrease impurity 和mean decrease accuracy。隨機森林由多個決策樹構成。決策樹中的每乙個節點都是關於某個特徵的條件,為的是將...

xgboost和隨機森林特徵重要性計算方法

隨機森林中特徵重要性和xgboost不同 隨機森林中的特徵重要性主要是基於不純度 也可以叫做gini importance 計算某乙個節點不純度為 其中,k omega k k le ft omega left ri ght omega right 分別為節點k以及其左右子節點中訓練樣本個數與總訓練...

隨機森林進行特徵選取

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