Функция Partial_fit снижает мою точность на тестовом наборе с каждой итерацией (используя Python) - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь построить классификатор 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
...