微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ValueError:X.shape [1] = 77应该等于691,即训练时的样本数

如何解决ValueError:X.shape [1] = 77应该等于691,即训练时的样本数

我是深度学习的初学者,并且使用内核“预先计算”进行简单的SVM培训。 现在,我在这错误上苦苦挣扎了将近5个小时。

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.ensemble import RandomForestClassifier
from sklearn import svm
from sklearn.tree import DecisionTreeClassifier,export_graphviz
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import KFold
from sklearn.metrics import accuracy_score
import numpy as np
import pandas as pd

kf = KFold(n_splits=10,random_state=123,shuffle=True)

acc = np.zeros(10) 
accset=np.zeros(5)

df = pd.read_csv('D:\\data.csv')

df_X = df.loc[:,df.columns != 'grade']
df_y = df['grade']

train_X,test_X,train_y,test_y = \
train_test_split(df_X,df_y,test_size=0.3,\
                     random_state=1234) 

model=svm.SVC(kernel='precomputed')

i = 0    
for train_index,test_index in kf.split(df_X):
    print("fold:",i)
    
    train_X,test_X = df_X.iloc[train_index],df_X.iloc[test_index]
    train_y,test_y =  df_y.iloc[train_index],df_y.iloc[test_index]

    gram_train = np.dot(train_X,train_X.T)


    model.fit(gram_train,train_y)
    
    gram_test = np.dot(test_X,test_X.T)

    pred_y = model.predict(gram_test)
  
    acc[i] = accuracy_score(test_y,pred_y)
    print('Accuracy : {0:3f}'.format(acc[i]))
    i += 1

这是我得到的错误

ValueError:X.shape [1] = 77应该等于691,即训练时的样本数

错误在这里发生

pred_y = model.predict(gram_test)

请问您这段代码有什么问题吗?..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。