IndexError: list index out of range

能帮我解决一下这个问题吗?已经被困扰好几天了,谢谢

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