模型持久化

__author__ = 'Oscar_Yang'
#-*- coding= utf-8 -*-
from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
from sklearn.externals import joblib
import pickle
from matplotlib import pyplot as plt
gnb = GaussianNB()
y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)
print("Number of mislabeled points out of a total {} points : {}".format(iris.data.shape[0],(iris.target != y_pred).sum()))

#python提供两种模型持久化的方法,第一种是joblib,一种是pickle:如下:
#第一种:比如gnb是我们想要保存的模型
joblib.dump(gnb, 'GaussianNB.model') #模型保存到本地
lr = joblib.load('GauaaianNB.model') #重新加载模型
"""
重新加载模型,  需要注意的是,这里执行joblib.dump()之后,有可能还会生成若干个以rf.model_XX.npy为命名格式的文件,
这有可能是用于保存模型中的系数等的二进制文件。
其具体生成的文件的个数还会随调用到的分类器的不同,以及分类器中迭代次数的参数的不同而变,有时候会生成几个,有时候会生成几百个。
"""

#或者第二种方式
save = pickle.dumps(gnb) #模保存模型
model = pickle.loads(save)#重新导入模型

 

posted @ 2016-11-15 18:36  coskaka  阅读(774)  评论(0编辑  收藏  举报