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)
не могли бы вы помочь мне, что не так с этим кодом, пожалуйста?..