我对 SKLearn 比较陌生,并且有一个关于特征选择的问题。
我正在尝试构建一个 SVM 模型,我的数据具有大约 30 个特征,所有大约 10k 数据点,我目前正在尝试尽可能多地消除无用的特征。我首先删除了与其他功能高度相关的功能,现在想使用 RFECV 来优化剩余的功能。
首先,我在 sklearn 网站上找到了这段代码,我遇到了一些问题,想知道是否有人可以提供帮助。
X = df.drop(['label'], axis=1)
y = df['label']
rfe = RFECV(SVR(kernel='linear'), step=1, scoring='accuracy')
rfe.fit(X, y)
print(rfe.ranking_)
首先,如果我按原样运行它,它需要永远运行,我已经离开它很长时间了,我还没有真正设法让它完成。但是,如果我删除kernel='linear'
它运行得相当快,但随后会产生一条错误消息,该消息似乎来自rfe.fit(X, y)
:
RuntimeError: The classifier does not expose "coef_" or "feature_importances_" attributes
我已经将我的功能减少到大约 10 个,只是为了看看我是否可以加快速度作为测试,并且还使用了step
变量,但是那里的kernel='linear'
变量似乎没有任何帮助加速它,它只是运行几个小时什么都不做。我想要的只是使用 RFECV 方法使用的功能列表。有没有人对我做错了什么或我可以做些什么来加快速度有什么建议?
非常感谢