liz*_*isk 2 chi-squared feature-selection scikit-learn
我正在尝试通过 scikit-learn (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."
为什么会出现这种情况以及如何正确应用特征选择?
该代码警告您可能需要执行任意的决胜局,因为某些功能具有完全相同的分数。
也就是说,特征选择实际上不适用于开箱即用的多标签;您目前能做的最好的事情是将特征选择和分类器在管道中联系在一起,然后将其提供给多标签元估计器。示例(未经测试):
clf = Pipeline([('chi2', SelectKBest(chi2, k=1000)),
('svm', LinearSVC())])
multi_clf = OneVsRestClassifier(clf)
Run Code Online (Sandbox Code Playgroud)
(我认为,即使绑定特征实际上不是第 k 和第 (k+1) 个,我认为也会发出此警告。通常可以安全地忽略它。)