内容简介:sklearn保存模型-【老鱼学sklearn】
训练好了一个Model 以后总需要保存和再次预测, 所以保存和读取我们的sklearn model也是同样重要的一步。
比如,我们根据房源样本数据训练了一下房价模型,当用户输入自己的房子后,我们就需要根据训练好的房价模型来预测用户房子的价格。
这样就需要在训练模型后把模型保存起来,在使用模型时把模型读取出来对输入的数据进行预测。
这里保存和读取模型有两种方法,都非常简单,差别在于保存和读取速度的快慢上,因为有一个是利用了多进程机制,下面我们分别来看一下。
创建模型
首先我们创建模型并训练数据:
from sklearn.datasets import load_digits from sklearn.svm import SVC # 加载数据 digits = load_digits() X = digits.data y = digits.target model = SVC() model.fit(X, y)
用pickle读写模型
pickle是 python 中用于数据序列化的模块,因此,对于模型的序列化也可以用此模块来进行:
import pickle # 以写二进制的方式打开文件 file = open("D:/data/python/model.pickle", "wb") # 把模型写入到文件中 pickle.dump(model, file) # 关闭文件 file.close()
这样会创建D:/data/python/model.pickle的文件,大家可以自己去尝试下看看,我这边生成的文件大概1M左右。
有了模型文件之后,在进行预测时我们就不需要进行训练了,而只要把这个训练好的模型文件读取出来,然后直接进行预测就可以:
import pickle # 以读二进制的方式打开文件 file = open("D:/data/python/model.pickle", "rb") # 把模型从文件中读取出来 model = pickle.load(file) # 关闭文件 file.close() # 用模型进行预测 from sklearn.datasets import load_digits digits = load_digits() X = digits.data y = digits.target print("预测值:", model.predict(X[15:20])) print("实际值:", y[15:20])
输出为:
预测值: [5 6 7 8 9] 实际值: [5 6 7 8 9]
用joblib进行模型的读写
直接上代码:
from sklearn.datasets import load_digits from sklearn.svm import SVC # 用模型进行训练 digits = load_digits() X = digits.data y = digits.target model = SVC() model.fit(X, y) # 用joblib保存模型 from sklearn.externals import joblib joblib.dump(model, "D:/data/python/model.joblib")
这样就会生成D:/data/python/model.joblib文件,看起来比pickle生成的文件大一点点。
读取模型:
# 用joblib读取模型 from sklearn.externals import joblib model = joblib.load("D:/data/python/model.joblib") # 对数据进行预测 from sklearn.datasets import load_digits digits = load_digits() X = digits.data y = digits.target print("预测值:", model.predict(X[15:20])) print("实际值:", y[15:20])
输出为:
预测值: [5 6 7 8 9] 实际值: [5 6 7 8 9]
看起来也很简单,同pickle的区别是joblib会以多进程方式来进行,据说性能会好些。
以上所述就是小编给大家介绍的《sklearn保存模型-【老鱼学sklearn】》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 保存和恢复模型
- [译] 保存和加载模型教程(PyTorch)
- Tensorflow SavedModel 模型的保存与加载
- javascript – Backbone.js – 在上一个保存前保存模型POST(创建)而不是PUT(更新)请求时出现问题
- 机器学习weka,java api调用随机森林及保存模型
- Android 文件保存
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大数据时代
[英] 维克托•迈尔•舍恩伯格(Viktor Mayer-Schönberger) / 周涛 / 浙江人民出版社 / 2012-12 / 49.90元
《大数据时代》是国外大数据研究的先河之作,本书作者维克托•迈尔•舍恩伯格被誉为“大数据商业应用第一人”,拥有在哈佛大学、牛津大学、耶鲁大学和新加坡国立大学等多个互联网研究重镇任教的经历,早在2010年就在《经济学人》上发布了长达14页对大数据应用的前瞻性研究。 维克托•迈尔•舍恩伯格在书中前瞻性地指出,大数据带来的信息风暴正在变革我们的生活、工作和思维,大数据开启了一次重大的时代转型,并用三......一起来看看 《大数据时代》 这本书的介绍吧!