能帮我解决一下这个问题吗?已经被困扰好几天了,谢谢
from sklearn.svm import SVC
svclf = SVC(kernel = 'linear')
svclf.fit(x_train,y_train)
preds = svclf.predict(x_test);
num = 0
preds = preds.tolist()
for i,pred in enumerate(preds):
if int(pred) == int(y_test[i]): #(这一行报错)
num += 1
print ('precision_score:' + str(float(num) / len(preds)))
你查下
from sklearn.svm import SVC
svclf = SVC(kernel = 'linear')
svclf.fit(x_train,y_train)
preds = svclf.predict(x_test);
num = 0
preds = preds.tolist()
len_y_test = len(y_test)
for i,pred in enumerate(preds):
if i >= len_y_test:
raise IndexError('y_test的长度为{}, i要取{}, 超出索引了'.format(len_y_test, i))
if int(pred) == int(y_test[i]): #(这一行报错)
num += 1
print ('precision_score:' + str(float(num) / len(preds)))
你可以在前面打印一下len(preds)和len(y_test),看一下这两个数组的长度是否满足后者大于等于前者,如果不是的话可能i会超出y_test的长度导致越界
越界了呗。 y_test 长度小于 i+1