如何使python机器学习库适合增量学习

时间:2015-09-07 12:13:38

标签: python machine-learning training-data

我需要经常使用新的训练数据更新我训练过的模型,而不想再次进行整个训练,那么如何使用一些现有的库和ML算法使其适合增量学习?理想情况下,我想看一个NLTK贝叶斯或scikit贝叶斯的例子。这里有一些答案,说这很难,但我相信会有一些图书馆允许我们这样做:

model.update(新-trainingdata)

不重复整个数据?

1 个答案:

答案 0 :(得分:2)

在scikit-learn中,您可以使用MultinomialNBGaussianNBBernoulliNB中提供的partial_fit()函数逐步使您的模型适合批量数据。当您处理如此多的数据时,这非常有用,以至于您无法在内存中同时处理所有数据。

显示其可能如何工作的示例如下:

from sklearn.naive_bayes import GaussianNB
import numpy as np
import pandas as pd

X = np.array([[1],[0],[2],[3],[4],[5],[1],[2],[3],[1],[3]])
Y = np.array([1,1,1,1,1,0,0,0,0,1,1])
all_classes = np.array([0,1])

clf = GaussianNB()

print clf.partial_fit(X, Y, classes=all_classes).class_count_

print clf.partial_fit(X,Y, classes=all_classes).class_count_

产量

[ 4.  7.]
[  8.  14.]

这是有道理的,因为分类器会看到4 0和7 1两次。

相关问题