当前位置:   article > 正文

Python中机器学习模型的几种保存方式_python保存模型

python保存模型

Python进行机器学习的几种模型保存方式!

大家好,我是翔宇!今天我给大家分享机器学习模型的几种保存方式!

大家都知道,在我们做数据分析的时候,不仅需要掌握业务,对业务指标进行监控等,而且在有些时候我们需要掌握一些数据挖掘的方法来满足一些“特殊”的工作需要。这就经常用到机器学习的模型进行分类、回归等。那么,很多时候我们都是将重点放在模型的算法、效果上,很少有人在乎当我们训练出一个模型后,如果我们需要将其保存下来,以便任何需要的时候都可以拿出来使用。因此,今天我特意分享一下,在Python中,如果我们想要完成这样的一个需求,我们该怎样做!

机器学习模型的保存和加载

模型训练(下面保存方式基于此例,这里训练一棵决策树来预测boston房价)

0.1 导入Boston房价数据

# 导入模块
from sklearn.datasets import load_boston     
# 实例化
boston = load_boston()
  • 1
  • 2
  • 3
  • 4

0.2 划分数据

from sklearn.model_selection import train_test_split as TTS  # 用来划分数据集
# 划分数据集,xtrain为训练特征,xtest测试特征,ytrain训练标签,ytest测试标签
# test_size=0.3表示30%数据集用来测试
xtrain,xtest,ytrain,ytest = TTS(boston.data,boston.target,test_size=0.3)    
  • 1
  • 2
  • 3
  • 4

0.3 训练模型

from sklearn.tree import DecisionTreeRegressor    # 导入回归决策树模块

DT = DecisionTreeRegressor().fit(xtrain,ytrain)    # 用训练集训练模型

DT.score(xtest,ytest)

out: 0.7601720678519819   (什么都没做的去情况下R方已经是0.76)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这里我们的一个简单的模型就已经训练好了,接下来就是保存它了.

1.使用pickle保存模型

# 导入包,无需pip install
import pickle

# 保存模型,我们想要导入的是模型本身,所以用“wb”方式写入,即是二进制方式,DT是模型名字
pickle.dump(DT,open("dtr.dat","wb"))   # open("dtr.dat","wb")意思是打开叫"dtr.dat"的文件,操作方式是写入二进制数据

# 加载模型 
loaded_model = pickle.load(open("dtr.dat","rb"))

# 使用模型,对测试数据集进行预测
loaded_model.predict(xtest)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

结果:

image-20211110225620331

2.使用joblib保存模型

# 导入包
import joblib 

# 保存模型
joblib.dump(DT,'DT.dat')  # 第二个参数只需要写文件名字,是不是比pickle更人性化

# 加载模型
loaded_model2 = joblib.load('DT.dat')

# 使用模型
loaded_model2.predict(xtest)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

结果:

image-20211110225611065

在强学习器xgboost中我们训练好模型就可以直接进行保存!当然不了解的话,前面两种已经足够使用了,我这里大致写一下代码.供有兴趣的朋友阅读,当然,如果需要了解更多,请移步到翔宇公众号“Python和数据分析

3.在xgboost中直接保存模型

# 模型保存(这里假设模型名字xgboost)
xgboost.save_model('train.model')  
# 加载模型
loaded_model3 = xgb.Booster(model_file='train.model')
# 使用模型
loeded_model3.predict(xtest)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

好了,今天的内容就分享这里了,如果对你有帮助请点赞、分享加关注,防止错过更多内容哦!

我是翔宇,公众号是“Python和数据分析”,我们明天见!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/207694
推荐阅读
相关标签
  

闽ICP备14008679号