我正在尝试为多标签分类进行特征选择。我将要训练的模型的特征提取到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)
答案 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)