功能选择时出错

时间:2015-12-27 07:00:33

标签: python machine-learning scikit-learn feature-selection

我正在尝试为多标签分类进行特征选择。我将要训练的模型的特征提取到X.模型测试在同一个X上完成。我正在使用Pipeline并选择最好的100个特征 -

length

但是我收到以下错误 -

#arrFinal contains all the features and the labels. Last 16 columns are labels and features are from 1 to 521. 17th column from the last is not taken
X=np.array(arrFinal[:,1:-17])
Xtest=np.array(X)
Y=np.array(arrFinal[:,522:]).astype(int)
clf = Pipeline([('chi2', SelectKBest(chi2, k=100)),('rbf',SVC())])
clf = OneVsRestClassifier(clf)
clf.fit(X, Y)
ans=clf.predict(X_test)

1 个答案:

答案 0 :(得分:2)

所以,在上面的注释中使用@JamieBull和@Joker进行调试会话之后。我们提出的解决方案是:

确保类型正确(最初为字符串)

X=np.array(arrFinal[:,1:-17]).astype(np.float64)
Xtest=np.array(X)
Y=np.array(arrFinal[:,522:]).astype(int)

首先使用VarianceThreshold删除chi2之前的常量(0)列。

clf = Pipeline([
      ('vt', VarianceThreshold()),
      ('chi2', SelectKBest(chi2, k=100)),
      ('rbf',SVC())
])
clf = OneVsRestClassifier(clf)
clf.fit(X, Y)
ans=clf.predict(X_test)