我试图用卡方法在做特征选择scikit学习(sklearn.feature_selection.SelectKBest)。 当我试图将其应用到多标记问题,我得到这样的警告:
UserWarning: Duplicate scores. Result may depend on feature ordering.There are probably duplicate features, or you used a classification score for a regression task. warn("Duplicate scores. Result may depend on feature ordering."
为什么appearning以及如何正确地运用特征选择是这种情况?
代码警告您任意搭配断裂,可能需要进行,因为一些功能具有完全相同的分数。
也就是说,特征选择实际上并不为多标记开箱工作; 目前可以做的最好的搭配特征选择和分类一起在一个管道,再喂,要一个多标记元估计。 实施例(未测试):
clf = Pipeline([('chi2', SelectKBest(chi2, k=1000)),
('svm', LinearSVC())])
multi_clf = OneVsRestClassifier(clf)
(这个警告,我相信,发出即使绑功能实际上不是第k和(k + 1)个,我认为,它通常可以忽略。)
我知道这个题目是有点老,但以下为我工作:
clf = Pipeline([('chi2', SelectKBest(chi2, k=1000)),
('lasso', OneVsRestClassifier(LogisticRegression()))])