Я пытаюсь построить классификатор NB с помощью оператораpart_fit классификатора MultinomialNB. Я пытаюсь включить инкрементное обучение, добавляя порцию данных в предварительно обученную модель и предоставляя новые веса выборки новым порциям. Вот фиктивная структура моих данных (целью является класс и другие предикторы)
Target Pred1 Pred2 Pred3 Pred4 Pred5
A 0 0 0 0 1
B 1 1 0 0 1
C 1 0 0 0 0
A 0 0 0 0 1
Я сохранил отдельный набор тестов, который я предсказываю с каждой информацией об итерациях частичной подгонки. С моим первым проходом частичного_прибора я получаю точность 94% в тестовом наборе, но со вторым проходом с частичным_прибором (+ новые порции данных) я получаю более низкую точность в тестовом наборе (93%). Разве я не должен получать более высокую точность на test_set каждый раз, когда я постепенно изучаю новые данные?
Код ниже:
#1st pass partial_fit:
input_model = MultinomialNB()
input_model.partial_fit(X_train, y_train, sample_weight = 1 * len(y_train),
classes=np.unique(y_train))
y_pred = input_model.predict(X_test)
#2nd pass partial_fit (using new data X_new, y_new, and similar dimensions as prior train):
input_model.partial_fit(X_new, y_new, sample_weight = 10 * len(y_new)) #Giving higher sample weights (value of 10) for these observations
y_pred1 = input_model.predict(X_test)
print(metrics.accuracy_score(y_pred, y_test))) #Higher accuracy
print(metrics.accuracy_score(y_pred1, y_test))) #Lower accuracy