为了账号安全,请及时绑定邮箱和手机立即绑定

将分类器保存到scikit-learn中的磁盘

将分类器保存到scikit-learn中的磁盘

一只名叫tom的猫 2019-12-07 15:12:13
如何将训练有素的朴素贝叶斯分类器保存到磁盘并用于预测数据?我有来自scikit-learn网站的以下示例程序:from sklearn import datasetsiris = datasets.load_iris()from sklearn.naive_bayes import GaussianNBgnb = GaussianNB()y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)print "Number of mislabeled points : %d" % (iris.target != y_pred).sum()
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

分类器只是可以像其他任何东西一样被腌制和倾倒的对象。继续您的示例:


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)


查看完整回答
反对 回复 2019-12-07
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您还可以使用joblib.dump和joblib.load,它们在处理数字数组方面比默认的python pickler效率更高。


Joblib包含在scikit-learn中:


>>> from sklearn.externals import joblib

>>> from sklearn.datasets import load_digits

>>> from sklearn.linear_model import SGDClassifier


>>> digits = load_digits()

>>> clf = SGDClassifier().fit(digits.data, digits.target)

>>> clf.score(digits.data, digits.target)  # evaluate training error

0.9526989426822482


>>> filename = '/tmp/digits_classifier.joblib.pkl'

>>> _ = joblib.dump(clf, filename, compress=9)


>>> clf2 = joblib.load(filename)

>>> clf2

SGDClassifier(alpha=0.0001, class_weight=None, epsilon=0.1, eta0=0.0,

       fit_intercept=True, learning_rate='optimal', loss='hinge', n_iter=5,

       n_jobs=1, penalty='l2', power_t=0.5, rho=0.85, seed=0,

       shuffle=False, verbose=0, warm_start=False)

>>> clf2.score(digits.data, digits.target)

0.9526989426822482


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信