python sklearn 机器学习 模型 保存 加载 使用

文章讲述了使用pickle和joblib方法保存sklearnSVC模型,比较了两者的优缺点,重点在于数据持久化和加载效率。
摘要由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())

joblib.dump 函数说明

import joblib

joblib.dump() 是 Python 中的一个函数,主要用于将对象保存到磁盘上的二进制文件中,以便后续加载和使用。它通常用于保存机器学习模型、大型数据集或其他需要长期保存的 Python 对象。

下面是 joblib.dump() 函数的详细解释以及参数的说明:

joblib.dump(value, filename, compress=0, protocol=None, cache_size=None)
  • value:要保存到磁盘的 Python 对象。这可以是任何 Python 对象,例如模型、数据集、列表、字典等。

  • filename:要保存对象的文件名(包括路径)。这是一个必需的参数。

  • compress:用于指定压缩级别的整数。默认值为 0,表示不使用压缩。如果将其设置为 1,则启用轻量级压缩,如果设置为 3,则启用较强的压缩。较高的压缩级别可能会减小文件大小,但可能需要更多的时间来保存和加载文件。

  • protocol:用于指定协议的整数。默认值为 None,表示使用默认的协议。协议用于确定对象的序列化方式,通常情况下无需指定。

  • cache_size:用于指定在将对象保存到磁盘之前,是否在内存中缓存对象的最大尺寸。默认值为 None,表示不使用缓存。如果设置为一个整数,它将限制在将对象保存到磁盘之前,可以缓存在内存中的对象大小。这对于处理大型对象时可能会有所帮助。

下面是一个示例,演示如何使用 joblib.dump() 将一个列表保存到磁盘文件中:

import joblib

# 要保存的数据
my_list = [1, 2, 3, 4, 5]

# 将数据保存到文件
filename = 'my_list.pkl'
joblib.dump(my_list, filename)

# 从文件加载数据
loaded_list = joblib.load(filename)
print(loaded_list)

在这个示例中,我们首先将一个列表 my_list 保存到名为 my_list.pkl 的文件中,然后使用 joblib.load() 从文件中加载数据并打印出来。这个过程允许您在不丢失数据的情况下长期保存和恢复 Python 对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值