一篇文章写清楚一个问题,关注我,自学Python!
今天用一个实例给大家写写在机器学习中如何将训练好的模型储存起来方便下次调用。
模型储存的必要性当我们训练好一个机器学习模型后,如果下次还想用这个模型,我们就需要把这个模型保存下来,尤其是在大数据中训练模型很耗时间的情况下,一定要保存模型,然后下次直接导入就好了,不然每次都跑一遍,训练时间短还好说,要是一次跑好几天的那种模型,不保存就会很悲催。
今天给大家介绍两种保存机器学习模型的方法:
- 一种就是使用python自带的pickle
- 另一种使用sklearn中的模块joblib
首先我们看pickle怎么用,要储存的模型还是我上一篇文章训练好的多元线性回归模型,见,现在我们将模型储存起来,代码如下
import pickle
with open('reg_pickle','wb') as f:
pickle.dump(reg,f)
导入pickle后,用写入模式打开一个reg_pickle文件,然后将我们的模型reg存入到f中。
运行代码就可以看到我们的工作目录中出现了一个新的文件,这个新文件就是我们储存的模型
pickle调用模型调用模型代码如下:
with open('reg_pickle','rb') as f:
mp = pickle.load(f)
用只读模式打开我们刚刚储存的reg_pickle文件,然后用.load方法就可以载入模型再次使用啦
joblib储存模型现在来看joblib的用法,要储存的模型还是我上一篇文章训练好的多元线性回归模型,见,现在我们将模型储存起来,代码如下:
from sklearn.externals import joblib
joblib.dump(reg, 'reg_joblib')
首先载入joblib库,然后直接用.dump方法就可以实现对模型的储存,比第一种方法要简单得多。
运行代码就可以看见工作目录中出现了reg_joblib文件:
joblib调用模型调用模型很简单,只需要用.load方法就行
mj = joblib.load('reg_joblib')
可以看到模型系数和原来模型一模一样。
小结今天给大家介绍了两种储存机器学习模型的方法,相比pickle,我更加推荐大家使用joblib,因为更简洁,还有根据官方文档介绍joblib效率也更高。感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python的,加油。
(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)
往期内容: