我正在尝试使用MultinomialNB分类器的partial_fit语句构建NB分类器。我正在尝试通过将大量数据添加到预训练模型中并为新的块提供更多的样本权重来合并增量学习。这是我的数据的模拟结构(目标是类,还有其他预测变量)
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
我保留了一个单独的测试集,该测试集将针对每个partial_fit迭代信息进行预测。通过我的第一次partial_fit传递,我在测试集上的准确性达到了94%,但是通过第二次传递了partial_fit(+了新的数据块),我在测试集上获得了更低的准确性(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,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