2015-08-30 58 views
0

我連續使用RF兩次。隨機森林功能重要性:實際使用了多少個?

首先,我使用max_features='auto'和整個數據集(109特徵)進行擬合,以執行特徵選擇。 以下是RandomForestClassifier.feature_importances_,它正確地給了我每各功能109分:

[0.00118087, 0.01268531, 0.0017589 , 0.01614814, 0.01105567, 
0.0146838 , 0.0187875 , 0.0190427 , 0.01429976, 0.01311706, 
0.01702717, 0.00901344, 0.01044047, 0.00932331, 0.01211333, 
0.01271825, 0.0095337 , 0.00985686, 0.00952823, 0.01165877, 
0.00193286, 0.0012602 , 0.00208145, 0.00203459, 0.00229907, 
0.00242616, 0.00051358, 0.00071606, 0.00975515, 0.00171034, 
0.01134927, 0.00687018, 0.00987706, 0.01507474, 0.01223525, 
0.01170495, 0.00928417, 0.01083082, 0.01302036, 0.01002457, 
0.00894818, 0.00833564, 0.00930602, 0.01100774, 0.00818604, 
0.00675784, 0.00740617, 0.00185461, 0.00119627, 0.00159034, 
0.00154336, 0.00478926, 0.00200773, 0.00063574, 0.00065675, 
0.01104192, 0.00246746, 0.01663812, 0.01041134, 0.01401842, 
0.02038318, 0.0202834 , 0.01290935, 0.01476593, 0.0108275 , 
0.0118773 , 0.01050919, 0.0111477 , 0.00684507, 0.01170021, 
0.01291888, 0.00963295, 0.01161876, 0.00756015, 0.00178329, 
0.00065709, 0.  , 0.00246064, 0.00217982, 0.00305187, 
0.00061284, 0.00063431, 0.01963523, 0.00265208, 0.01543552, 
0.0176546 , 0.01443356, 0.01834896, 0.01385694, 0.01320648, 
0.00966011, 0.0148321 , 0.01574166, 0.0167107 , 0.00791634, 
0.01121442, 0.02171706, 0.01855552, 0.0257449 , 0.02925843, 
0.01789742, 0.  , 0.  , 0.00379275, 0.0024365 , 
0.00333905, 0.00238971, 0.00068355, 0.00075399] 

然後,我改變了數據集較適合,應減少其維度,然後我再配合RF過去。 鑑於max_features='auto'和109個功勳,我預計總共有10〜替代的功能,調用rf.feats_importance_返回更多(62):

[ 0.01261971, 0.02003921, 0.00961297, 0.02505467, 0.02038449, 
0.02353745, 0.01893777, 0.01932577, 0.01681398, 0.01464485, 
0.01672119, 0.00748981, 0.01109461, 0.01116948, 0.0087081 , 
0.01056344, 0.00971319, 0.01532258, 0.0167348 , 0.01601214, 
0.01522208, 0.01625487, 0.01653784, 0.01483562, 0.01602748, 
0.01522369, 0.01581573, 0.01406688, 0.01269036, 0.00884105, 
0.02538574, 0.00637611, 0.01928382, 0.02061512, 0.02566056, 
0.02180902, 0.01537295, 0.01796305, 0.01171095, 0.01179759, 
0.01371328, 0.00811729, 0.01060708, 0.015717 , 0.01067911, 
0.01773623, 0.0169396 , 0.0226369 , 0.01547827, 0.01499467, 
0.01356075, 0.01040735, 0.01360752, 0.01754145, 0.01446933, 
0.01845195, 0.0190799 , 0.02608652, 0.02095663, 0.02939744, 
0.01870901, 0.02512201] 

爲什麼?它不應該只返回〜10個重要特性嗎?

+0

這裏的代碼:http://pastebin.com/H7u7qkUt –

回答

4

你誤會的max_features的意義,這是

尋找最佳分割

轉換數據時,它不是特徵的數量時要考慮的要素的數量。

這是transform方法中的threshold,它決定了最重要的功能。

:串,浮點型或無,可選的(默認=無)

的閾值以用於特徵選擇。保留重要性大於或等於的特徵,而丟棄其他特徵。如果「median」(或「mean」),那麼閾值是特徵重要性的中位數(或平均值)。縮放因子(例如,「1.25 *平均值」)也可以被使用。如果沒有,並且可用,則使用對象屬性閾值。否則,默認使用「mean」。