问题描述
我是深度学习的初学者,并且使用内核“预先计算”进行简单的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 (将#修改为@)