我正在使用递归特征排名函数i 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有什么问题?
从文档中:
sklearn.datasets.make_friedman1
: 生成"弗里德曼 #1"回归问题
(着重号后加)
您不能明智地在回归问题上使用分类器。SVR
之所以有效,是因为它不是分类器学习器,而是回归学习器。