我想用scikit-learn对我的回归问题应用像递归特征消除这样的包装器方法。 Recursive feature elimination with cross-validation提供了一个很好的概述,如何自动调整功能的数量。
我试过了:
~
但是我收到了一条错误消息,例如
"./node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables"
警告听起来像我有分类问题,但我的任务是回归问题。我该怎么做才能得到结果以及出了什么问题?
答案 0 :(得分:1)
以下是发生的事情:
默认情况下,当用户未指明折叠次数时,RFE
的交叉验证会使用3-fold
交叉验证。到目前为止一切都很好。
然而,如果您查看documentation,它还会使用StartifiedKFold
,以确保通过保留每个类的样本百分比来创建折叠。因此,由于(根据错误)输出y
的某些元素是唯一,因此它们不能同时在3个不同的折叠中。它会抛出错误!
错误来自here。
然后你需要使用不分层的K-fold:KFold
。
RFECV
的文档说:
"If the estimator is a classifier or if y is neither binary nor multiclass, sklearn.model_selection.KFold is used."