用隨機森林做特徵選擇

2021-08-01 02:27:29 字數 1026 閱讀 4866

關於隨機森林的介紹,可見本部落格中

首先提出兩個指標,特徵重要性和分類精確度。

一.特徵重要性

對於隨機森林中的一顆決策樹,其訓練資料集是使用bagging方法得到的,即套袋法,還有大約1/3的袋外資料我們可以用它進行特徵重要性的度量,假設針對某個特徵x,我們利用套袋法建立了一顆決策樹t,然後用t對袋外資料toob進行分類檢測,得到其正確分類的個數xt,然後對袋外資料的特徵x進行「隨機擾亂」,對特徵x的取值賦予隨機取的新數值,這時再用t對袋外資料toob'進行分類檢測,得到正確分類數xt',這時對於t來說,特徵x的重要性d=|xt' - xt|,我們對隨機森林中共n顆決策樹做相同操作,可以得到n個特徵x的重要性,取其均值作為x的重要性度量,即d(x) = (d1+d2+......+dn)/n,其中di = |xt'i - xti|(i=1,2,3,....,n)。

總結下來,判斷乙個屬性重要不重要,還是判斷其值的改變對結果的影響程度。

二.分類精確度

準確度度量方法有很多,可以根據精度要求進行調整,這裡可以使用正確的分類數/總的測試資料數

下面就可以開始使用隨機森林進行特徵選擇

①.將原始資料集隨機劃分為10等份,設其有m個特徵,用其中的9份做訓練資料集訓練出乙個隨機森林r1,剩下的乙份作為測試資料集,這樣我們一共能得到10個隨機森林r1,r2,r3....,r10,

②.對於每個隨機森林ri,我們採用後向序列選擇演算法,對m個特徵進行重要性由大到小的排序,剔除最小的乙個特徵,並記錄下ri的分類精度,

③.對步驟②如此進行m次迭代,選取有最高分類精度的ri作為第i顆隨機森林的

分類精度,其特徵集作為第i個隨機森林的特徵集

④.對步驟②③進行10次迭代,最終選取有最高分類精度的隨機森林作為最終結果,其特徵集作為我們特徵選擇的結果

之所要進行這麼多次迭代,一定程度上能避免隨機性帶來的干擾。

隨機森林特徵選擇

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

隨機森林之特徵選擇

摘要 在隨機森林介紹 中提到了隨機森林乙個重要特徵 能夠計算單個特徵變數的重要性。並且這一特徵在很多方面能夠得到應用,例如在銀行貸款業務中能否正確的評估乙個企業的信用度,關係到是否能夠有效地 貸款。但是信用評估模型的資料特徵有很多,其中不乏有很多噪音,所以需要計算出每乙個特徵的重要性並對這些特徵進行...

隨機森林特徵篩選

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