python - 特征选择

标签 python scikit-learn feature-selection

我尝试使用以下代码在 scikit learn 中进行递归特征选择。

from sklearn import datasets, svm
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.feature_selection import RFE
import numpy as np

input_file_iris = "/home/anuradha/Project/NSL_KDD_master/Modified/iris.csv"
dataset = np.loadtxt(input_file_iris, delimiter=",")
X = dataset[:,0:4]
y = dataset[:,4]

estimator= svm.OneClassSVM(nu=0.1, kernel="rbf", gamma=0.1)

selector = RFE(estimator,3, step=1)
selector = selector.fit(X,y)

但它给出了以下错误

Traceback (most recent call last):
File "/home/anuradha/PycharmProjects/LearnPython/Scikit-learn/univariate.py", line 30, in <module>
File "/usr/local/lib/python2.7/dist-packages/sklearn/feature_selection/rfe.py", line 131, in fit
return self._fit(X, y)


File "/usr/local/lib/python2.7/dist-packages/sklearn/feature_selection/rfe.py", line 182, in _fit



raise RuntimeError('The classifier does not expose '
RuntimeError: The classifier does not expose "coef_" or 
"feature_importances_" attributes

请有人可以帮助我解决这个问题或指导我找到另一种解决方案

最佳答案

将您的内核更改为线性,您的代码就可以工作。

此外,svm.OneClassSVM 用于无监督异常值检测。您确定要使用它作为估算器吗?或者您可能想使用 svm.SVC()。查看以下链接以获取文档。

http://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html

最后,虹膜数据集已经在 sklearn 中可用。您已导入sklearn.datasets。所以你可以简单地将 iris 加载为:

iris = datasets.load_iris()
X = iris.data
y = iris.target

关于python - 特征选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38891600/

相关文章:

machine-learning - na.fail.default 中的随机森林错误 : missing values in object

python - 在 QTableWidget 中移动单元格小部件时崩溃

python - cmdclass 在 Python setuptools 中有什么作用?

python - 高效地在 Python 列表中查找索引(与 MATLAB 相比)

r - 为什么递归特征消除程序没有消除无用的预测变量?

python - 包含字符串和数值的数据集中的特征选择?

python - pylint 不指向 virtualenv python

Python RandomForest - 未知标签错误

python - 如何在较低维空间中绘制分类区域?

python - 支持向量回归在线学习