Как прогнозировать новые данные, используя склеарн Perceptron и DictVectorizer - PullRequest
0 голосов
/ 01 октября 2019

Я обучил модель с использованием 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

Похоже, что имеется ошибка для выборки.

Так как же получить такую ​​же функцию на выборку для этих новых данных

...