sklearn 的模型保存与加载使用

'''
训练好了模型之后保存到本地,并重新加载模型用于预测的两种方法
'''
# 方法1:pickle
from sklearn import svm
from sklearn import datasets 
import pickle 
clf = svm.SVC()
iris = datasets.load_iris() 
X,y = iris.data, iris.target 
clf.fit(X,y)
# 模型的保存
with open('clf.pickle','wb') as f: 
    pickle.dump(clf,f) #将训练好的模型clf存储在变量f中,且保存到本地

# 模型的重新加载和使用
with open('clf.pickle','rb') as f:  
    clf_load = pickle.load(f)  #将模型存储在变量clf_load中  
    print(clf_load.predict(X[0:1000])) #调用模型并预测结果
# 方法2:joblib方法
from sklearn import svm 
from sklearn import datasets
import joblib
# sklearn.externals.joblib函数是用在0.21及以前的版本中,在最新的版本中,该函数应被弃用改为直接导入joblib
# from sklearn.externals import joblib
clf = svm.SVC()
iris = datasets.load_iris() 
X,y = iris.data, iris.target 
clf.fit(X,y) 
# 保存训练好的clf模型 
joblib.dump(clf,'clf.pkl',compress=3) 
# 重新加载训练好的clf模型 
clf3 = joblib.load('clf.pkl')  
print(clf3.predict(X[0:1000]))  # 打印预测值
# 相对比而言,joblib更高效,但32位python和64位python不能无缝连接使用,可以通过如下代码查看本机的情况
import platform 
print(platform.architecture())

你可能感兴趣的:(sklearn,机器学习,python)