Numpy 以相同的精度分两步训练数据?

Numpy 以相同的精度分两步训练数据?,numpy,machine-learning,parallel-processing,scikit-learn,Numpy,Machine Learning,Parallel Processing,Scikit Learn,我正在尝试实现主动学习机(一个项目的实验)算法,我想单独训练,请检查下面的代码 clf = BernoulliNB() clf.fit(X_train[0:40], y_train[0:40]) clf.fit(X_train[40:], y_train[40:]) 上面的步骤通常是这样做的 clf = BernoulliNB() clf.fit(X_train, y_train) 两者的准确度得分不同。我想将训练数据添加到现有模型本身,因为它的计算成本很高——我不希望我的模型再进行一次计算

我正在尝试实现主动学习机(一个项目的实验)算法,我想单独训练,请检查下面的代码

clf = BernoulliNB()
clf.fit(X_train[0:40], y_train[0:40])
clf.fit(X_train[40:], y_train[40:])
上面的步骤通常是这样做的

clf = BernoulliNB()
clf.fit(X_train, y_train)
两者的准确度得分不同。我想将训练数据添加到现有模型本身,因为它的计算成本很高——我不希望我的模型再进行一次计算


有什么办法吗?

你应该使用partial\u fit批量训练你的模型

clf = BernoulliNB()
clf.partial_fit(X_train[0:40], y_train[0:40])
clf.partial_fit(X_train[40:], y_train[40:])
请检查以了解有关该功能的更多信息


希望这有帮助:)

这被称为在线培训或用于大数据的增量学习。请看这个

基本上,在scikit学习中,您需要事先知道
partial_fit()
中的所有标签

部分拟合(X,y,类别=无,样本重量=无)

y向量中可能出现的所有类的列表。必须在第一次调用partial_fit时提供,可以在后续调用中省略

如果您只是这样做:

clf.partial_fit(X_train[0:40], y_train[0:40])
clf.partial_fit(X_train[40:], y_train[40:])
然后,如果在前40个样本中不存在任何类,并且在partial_fit()的下一次迭代中出现,那么它将抛出一个错误

因此,理想情况下,您应该这样做:

# First call
clf.partial_fit(X_train[0:40], y_train[0:40], classes = np.unique(y_train))

# subsequent calls
clf.partial_fit(X_train[40:80], y_train[40:80])
clf.partial_fit(X_train[80:], y_train[80:])

and so on..

上面的工作非常完美。只是等待一段时间(2天)才接受这个答案。非常感谢。接受这个答案,因为它有一个更清楚的解释。
# First call
clf.partial_fit(X_train[0:40], y_train[0:40], classes = np.unique(y_train))

# subsequent calls
clf.partial_fit(X_train[40:80], y_train[40:80])
clf.partial_fit(X_train[80:], y_train[80:])

and so on..