Я обучил модель с использованием sklearn
word label
0 @paulwalk O
1 It O
2 's O
3 the O
4 view O
Форма данных обучения: (55725, 2)
Я обучил модель для распознавания сущностей,Фрагмент кода выглядит следующим образом:
X = train_data.drop('label', axis=1)
v = DictVectorizer()
X = v.fit_transform(X.to_dict('records'))
y = train_data.label.values
форма матрицы для данных о поездах
print(x_train.shape) : (44580, 13794)
, обучающая модель
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
per = Perceptron(verbose = 10, max_iter = 5, n_jobs = -1)
per.partial_fit(x_train, y_train, classes)
тестирование модели на тестовых данных дает хорошую точность
print(f1_score(per.predict(x_test), y_test, average="micro"))
0.95326589
Теперь появились новые данные, и я хочу проверить точность моей модели на этих новых данных. но я получаю следующую ошибку.
X_new = v.fit_transform(data.to_dict('records'))
per.predict(X_new)
--------------------------------------------------------------------------- ValueError Traceback (самый последнийпоследний вызов) в ----> 1 per.predict (X_new)
~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ sklearn \ linear_model \ base.py в предикате (self,X) 279 предсказанных меток классов на образец. 280 "" "-> 281 баллов = self.decision_function (X) 282 если len (scores.shape) == 1: 283 индекса = (баллы> 0) .astype (np.int)
~\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ sklearn \ linear_model \ base.py в решении_функции (self, X) 260, если X.shape [1]! = N_features: 261 повысить ValueError («X имеет% dобъектов на выборку; ожидается% d "-> 262% (X.shape [1], n_features)) 263 264 баллов = safe_sparse_dot (X, self.coef_.T,
ValueError: X имеет 5843 функциина выборку, ожидая 17441
Похоже, что имеется ошибка для выборки.
Так как же получить такую же функцию на выборку для этих новых данных