Ответ 1
Scikit-learn включает в себя довольно много методов для ранжирования функций, среди которых:
- Выбор одномерной функции (http://scikit-learn.org/stable/auto_examples/feature_selection/plot_feature_selection.html)
- Устранение рекурсивных функций (http://scikit-learn.org/stable/auto_examples/feature_selection/plot_rfe_digits.html)
- Рандомизированная логистическая регрессия/выбор стабильности (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.RandomizedLogisticRegression.html)
(подробнее см. http://scikit-learn.org/stable/modules/feature_selection.html)
Среди тех, я определенно рекомендую сделать рандомизированную логистическую регрессию выстрелом. По моему опыту, он последовательно превосходит другие методы и очень стабилен. Бумага об этом: http://arxiv.org/pdf/0809.2932v2.pdf
Edit: Я написал серию сообщений в блогах о различных методах выбора объектов и их плюсах и минусах, которые, вероятно, полезны для более подробного ответа на этот вопрос:
- http://blog.datadive.net/selecting-good-features-part-i-univariate-selection/
- http://blog.datadive.net/selecting-good-features-part-ii-linear-models-and-regularization/
- http://blog.datadive.net/selecting-good-features-part-iii-random-forests/
- http://blog.datadive.net/selecting-good-features-part-iv-stability-selection-rfe-and-everything-side-by-side/