2013-06-05 155 views
0

向後貪婪,我想申請一個數據集的特徵選擇與1700層的功能和3300個實例。特徵選擇的一種方法是逐步迴歸。這是一種貪婪的算法,可以在每一輪中刪除最糟糕的特徵。實現特徵選擇

我使用的是數據的表現上SVM作爲度量發現這是最壞的功能。我第一次訓練1700次SVM,每次只保留一個特徵。在本次迭代結束時,我從刪除導致SVM性能最高的集合中刪除該特徵。所以我們現在剩下1699個功能。

第二次,我訓練SVM 1699次,每次保留一個功能了,等等。

如果我想將數據集減少到100個特徵,那麼這個程序將訓練SVM(1700!-100!)次。這是棘手的。有關如何避免這種問題的建議?

+0

你在找什麼?這種方法更聰明的算法,還是完全不同的特徵選擇方法? –

+0

更聰明的算法,如果存在? –

回答

2

我會說,你可能要考慮不同的算法,例如啓動使用infogain。

然而,要回答這個問題:你可以嘗試消除多單功能更在每次迭代;從消除許多功能開始,並在您進步時減少此數量。

E.g.在第一次運行(1700個SVM列車)後,不是隻消除一個特徵,而是消除最差的200個特徵,然後重複1500個特徵,等等。那麼從150到100在每次迭代之後只消除一個。這將需要訓練一個「僅」約20K次的SVM。如果仍然太多,你可以增加數字。我猜測結果會非常相似,或者至少不會比按照您的建議運行更差。