LeaveOneOut() - SVM分类器中的关键错误



我正在处理一个csv文件:39个参与者(行)每个具有30个功能(列)的值。我试图实现LeaveOneOut()使用下面的代码。我得到一个键错误…任何帮助将不胜感激!

# code
X = df.drop(labels=['Diagnosis'], axis=1) # dropped diagnosis 
Y = df['Diagnosis'].values
Y = Y.astype('int') 
loo = LeaveOneOut()
for train, test in loo.split(X, Y):
X_train, X_test = X[train], X[test]
Y_train, Y_test = Y[train], Y[test]
svm = SVC(kernel='linear')
svm.fit(X_train,Y_train)
pred_svm = svm.predict(X_test)
print(classification_report(Y_test, pred_svm))
print(confusion_matrix(Y_test, pred_svm))

如果你能分享什么是loo的结果,我可以更准确地回答,但据我所知,它是一个索引列表而不是布尔掩码,因此你可以像这样改变你的代码。

for train, test in loo.split(X, Y):
X_train, X_test = X.loc[train].copy(), X.loc[test].copy()
Y_train, Y_test = Y[train], Y[test]

最新更新