2016-11-04 41 views
0

我想選擇可用的最佳功能子集,以區分兩個要加入到我構建的統計框架中的類,其中功能不是獨立的。選擇功能的最佳子集

看過機器學習中的功能選擇方法後,它似乎分爲三個不同的類別:過濾器,包裝器和嵌入式方法。過濾方法可以是:單變量或多變量。使用Filter(多變量)或包裝器方法確實有意義,因爲兩個 - 據我瞭解 - 尋找最佳子集,但是,因爲我沒有使用分類器,所以如何使用它?

  1. 是否有意義應用這樣的方法(例如遞歸功能 消除)到DT或隨機森林分類,其中 有規則在那裏,然後特徵拿得到最好的子集,並餵它 到我的框架?**

  2. 而且,因爲大多數提供的算法Scikit學習是 單變量算法,是否有任何其他基於Python的庫 提供更多的子集的特徵選擇算法?

回答

0

我認爲「Scikit-learn提供的大多數算法都是單變量算法」的說法是錯誤的。 Scikit-learn很好地處理多維數據。他們提供的RandomForestClassifier將給你一個特徵重要性的估計。

估計特徵重要性的另一種方法是選擇您喜歡的任何分類器,對它進行訓練並估計驗證集上的性能。記錄準確性,這將成爲您的基準。然後進行相同的訓練/驗證拆分,並沿着一個特徵維度隨機排列所有值。然後再訓練和驗證。記錄您的基線的準確度差異。對所有特徵尺寸重複此操作。結果將是每個特徵維度的數字列表,指示其重要性。

您可以將其擴展爲使用特徵維度的對或三元組,但計算成本將快速增長。如果你的功能是高度相關的,你可能會從這樣做中受益,至少在配對情況下。

這裏就是我瞭解到,招的源文件:http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#varimp (它應該比隨機森林其它分類)

+0

非常感謝,這是真正有用的......那麼,這是否意味着我可以確實使用分類器來確定特徵選擇步驟中的重要特徵,然後使用此重要特徵將其饋送到另一個框架(與特徵選擇步驟中使用的分類器不同)? – Ophilia

+0

我不明白爲什麼不。分類器都是關於如何利用X數據來清除y數據中所需的輸出信號。他們都需要找到哪些信息在某種程度上實際上是信息性的(vs噪聲)。分類器可能不同意信號中重要的內容,但作爲特徵選擇步驟應該沒問題。 – Erotemic

+0

非常感謝!這真的很有幫助 – Ophilia