2012-09-17 7 views
13

To jest bardziej pytanie "teoretyczne". Pracuję z pakietem naukowo-naukowym, aby wykonać pewne zadanie NLP. Sklearn oferuje wiele metod, które umożliwiają zarówno wybór cech, jak i ustawienie parametrów modelu. Zastanawiam się, co powinienem zrobić jako pierwszy.Co zrobić najpierw: Ustawienie funkcji lub ustawienia parametrów modelu?

Jeśli używam univariate feature selection, to jest oczywiste, że powinienem najpierw dokonać wyboru cech i, z wybranymi funkcjami, nastroić parametry estymatora.

Ale co jeśli chcę użyć recursive feature elimination? Czy najpierw powinienem ustawić parametry przy pomocy grid search używając WSZYSTKICH oryginalnych funkcji, a dopiero potem dokonać wyboru funkcji? A może powinienem najpierw wybrać funkcje (z domyślnymi parametrami estymatora), a następnie ustawić parametry z wybranymi funkcjami?

Z góry dziękuję za pomoc, jaką możesz mi udzielić.

EDIT

Mam dość dużo ten sam problem stwierdził here. Do tego czasu nie było rozwiązania. Czy ktoś wie, czy istnieje teraz?

Odpowiedz

16

Osobiście uważam, że RFE w większości przypadków jest przesadna i za droga. Jeśli chcesz dokonać wyboru cech w modelach liniowych, użyj jednozmiennego wyboru funkcji, na przykład z testami chi2 lub wyregulowanymi modelami L1 lub L1 + L2 z parametrem regulowanym szukanym przez sieć (zwykle o nazwie C lub alpha w modelach sklearn).

przypadku problemów silnie nieliniowych z dużą ilością próbek należy spróbować RandomForestClassifier, ExtraTreesClassifier lub GBRT modele i sieci przeszukiwanego parametry wyboru (ewentualnie przy użyciu szacunków zdobędzie OOB) i użyć przełącznika compute_importances znaleźć ranking cech według ważności i użyj tego do wyboru funkcji.

Dla wysoce nieliniowych problemów z kilkoma próbkami, nie sądzę, że istnieje jakieś rozwiązanie. Musisz robić neurobiologię :)

+0

Dzięki za sugestię. Ponieważ planuję użyć LogistRegression i SVC, myślę, że chi2 i/lub L1 będą wystarczające. – feralvam

Powiązane problemy