Выбор определенного количества объектов с помощью RFECV от Sklearn (рекурсивное удаление функций с перекрестной проверкой) - PullRequest
0 голосов
/ 05 июля 2018

Мне интересно, возможно ли в RFECV от Sklearn выбрать фиксированное количество наиболее важных функций. Например, работая над набором данных с 617 функциями, я пытался использовать RFECV, чтобы увидеть, какие 5 из этих функций являются наиболее значимыми. Однако у RFECV нет параметра 'n_features_to_select', в отличие от RFE (что меня смущает). Как мне с этим бороться?

1 Ответ

0 голосов
/ 05 июля 2018

Согласно этому сообщению quora

Объект RFECV помогает настроить или найти этот параметр n_features, используя перекрестную проверку. Для каждого шага, где исключается количество «шагов», он рассчитывает балл по данным проверки. Количество функций, оставленных на шаге, которое дает максимальный балл для данных проверки, считается «лучшим n_features» ваших данных.

В которой говорится, что RFECV определяет оптимальное количество функций (n_features) для получения наилучшего результата.
Встроенный объект RFECV содержит атрибут ranking_ с ранжированием объектов и маску support_ для выбора оптимальных найденных объектов.
Однако, если вы ДОЛЖНЫ выбрать лучшие n_features из RFECV, вы можете использовать атрибут ranking_

optimal_features = X[:, selector.support_] # selector is a RFECV fitted object

n = 6 # to select top 6 features
feature_ranks = selector.ranking_  # selector is a RFECV fitted object
feature_ranks_with_idx = enumerate(feature_ranks)
sorted_ranks_with_idx = sorted(feature_ranks_with_idx, key=lambda x: x[1])
top_n_idx = [idx for idx, rnk in sorted_ranks_with_idx[:n]]

top_n_features = X[:5, top_n_idx]

Ссылка: документация sklearn , Quora post

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...