如何将经过训练的朴素贝叶斯分类器保存到磁盘并用它来预测数据?
我有以下来自 scikit-learn 网站的示例程序:
from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)
print "Number of mislabeled points : %d" % (iris.target != y_pred).sum()
最佳答案
分类器只是可以像其他任何东西一样被腌制和倾倒的对象。继续你的例子:
import cPickle
# save the classifier
with open('my_dumped_classifier.pkl', 'wb') as fid:
cPickle.dump(gnb, fid)
# load it again
with open('my_dumped_classifier.pkl', 'rb') as fid:
gnb_loaded = cPickle.load(fid)
编辑:如果您使用的是 sklearn Pipeline在其中您有无法通过 pickle (也不能通过 joblib )序列化的自定义转换器,然后使用 Neuraxle 的 custom ML Pipeline saving是一种解决方案,您可以在其中定义自己的自定义 step savers在每一步的基础上。如果在保存时定义了保存程序,则每个步骤都会调用保存程序,否则将使用 joblib 作为没有保存程序的步骤的默认值。
https://stackoverflow.com/questions/10592605/