sklearn 的模型保存与加载使用

本文介绍了如何使用pickle和joblib库分别保存和加载训练好的Scikit-learn模型,以实现模型在Python中的持久化。通过实例演示了这两种方法的步骤,并讨论了joblib在效率上的优势以及不同平台间的兼容性问题。
摘要由CSDN通过智能技术生成
'''
训练好了模型之后保存到本地,并重新加载模型用于预测的两种方法
'''
# 方法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())

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值