Использование Scikit LDA в RFECV
Я использую рекурсивную функцию ранжирования функций в scikit-learn (http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFECV.html#sklearn.feature_selection.RFECV). Тем не менее, я хотел бы использовать классификатор LDA в качестве оценщика. У меня есть этот код:
X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
estimator = LDA()
#selector = RFE(estimator,5,step = 1)
selector = RFECV(estimator, cv = 5,step = 1)
selector=selector.fit(X,y)
print selector.support_
print selector.ranking_
Когда я выполняю этот код, я получаю сообщение об ошибке. Если я выполню тот же код с RFE, это нормально. Или, если я использую классификатор SVR, он работает нормально. У меня вопрос, получаю ли я классификатор при вызове метода LDA(). RFECV будет использовать классификатор в "оценщике" для ранжирования объектов. В чем проблема с LDA?
1 ответ
Из документов:
sklearn.datasets.make_friedman1
: Генерировать регрессионную проблему "Фридман № 1"
(выделение добавлено)
Вы не можете разумно использовать классификатор для проблемы регрессии. Причина по которой SVR
работает то, что не ученик классификатора, а ученик регрессии.