序列化和反序列化机器学习的模型
需要将生成的机器学习模型序列化,并将其发布到生产环境。
当有新的数据出现时,需要反序列化已保存的模型,然后用其预测新的数据。

1. 通过pickle序列化和反序列化机器学习模型

pickle是标准的python序列化方法,可以通过它来序列化机器学习算法生成的模型,并将其保存到文件中。当需要对新数据进行预测时,将已保存的模型反序列化,并用其预测新的数据。

# -*- coding: utf-8 -*-
#import matplotlib.pyplot as pltfrom pandas import read_csv
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from pickle import dump
from pickle import loadfilename='pima indians.txt'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
data=read_csv(filename,names=names)
array= data.values
X= array[:,0:8]
Y= array[:,8]
test_size = 0.33
seed=4X_train,X_test, Y_train, Y_test = train_test_split(X,Y, test_size= test_size, random_state =seed)#训练模型
model = LogisticRegression()
model.fit(X_train,Y_train)
#保存模型
model_file='finalized_model.sav'
with open(model_file, 'wb') as model_f:#模型序列化dump(model, model_f)#加载模型
with open(model_file, 'rb') as model_f:#模型反序列化loaded_model= load(model_f)result=loaded_model.score(X_test, Y_test)print('算法评估结果:%.3f'%(result*100))

运行结果为:

算法评估结果:80.315

2.通过joblib序列化和反序列化机器学习的模型

joblib是SciPy生态环境的一部分,提供了通用的工具来序列化python的对象和反序列化python的对象。
通过joblib序列化对象时会采用Numpy的格式保存数据,这对某些保存数据到模型中的算法非常有效,如K近邻算法。


# -*- coding: utf-8 -*-
#import matplotlib.pyplot as pltfrom pandas import read_csv
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.externals.joblib import dump
from sklearn.externals.joblib import loadfilename='pima indians.txt'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
data=read_csv(filename,names=names)
array= data.values
X= array[:,0:8]
Y= array[:,8]
test_size = 0.33
seed=4X_train,X_test, Y_train, Y_test = train_test_split(X,Y, test_size= test_size, random_state =seed)#训练模型
model = LogisticRegression()
model.fit(X_train,Y_train)
#保存模型
model_file='finalized_model.sav'
with open(model_file, 'wb') as model_f:#模型序列化dump(model, model_f)#加载模型
with open(model_file, 'rb') as model_f:#模型反序列化loaded_model= load(model_f)result=loaded_model.score(X_test, Y_test)print('算法评估结果:%.3f'%(result*100))

运算结果为:

算法评估结果:80.315

《深度学习Python实践》第18章——持久化加载模型相关推荐

  1. Objective-C学习笔记第十五章文件加载与保存

    第十五章文件加载与保存 Cocoa提供了Core Data,他能在后台处理所有文件内容 Cocoa提供了两个通用的文件处理类:属性列表和对象编码 一.属性列表类 在Cocoa中,有一类名为属性列表的对 ...

  2. 深度学习修炼(二)——数据集的加载

    文章目录 致谢 2 数据集的加载 2.1 框架数据集的加载 2.2 自定义数据集 2.3 准备数据以进行数据加载器训练 致谢 Pytorch自带数据集介绍_godblesstao的博客-CSDN博客_ ...

  3. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(四)(Python语言基础(2))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(四)(Python语言基础(2)) 第4讲 Python语言基础(2) 4.1 内置数据结构 4.1.1 序列数据结构(sequ ...

  4. 人工神经网络理论、设计及应用_TensorFlow深度学习应用实践:教你如何掌握深度学习模型及应用...

    前言 通过TensorFlow图像处理,全面掌握深度学习模型及应用. 全面深入讲解反馈神经网络和卷积神经网络理论体系. 结合深度学习实际案例的实现,掌握TensorFlow程序设计方法和技巧. 着重深 ...

  5. 02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面(作业:初始化+正则化+梯度检验)

    文章目录 作业1:初始化 1. 神经网络模型 2. 使用 0 初始化 3. 随机初始化 4. He 初始化 作业2:正则化 1. 无正则化模型 2. L2 正则化 3. DropOut 正则化 3.1 ...

  6. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(八)(TensorFlow基础))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(八)(TensorFlow基础)) 8 TensorFlow基础 8.1 TensorFlow2.0特性 8.1.1 Tenso ...

  7. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  8. 深度学习笔记第二门课 改善深层神经网络 第一周:深度学习的实践层面

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  9. 2.1)深度学习笔记:深度学习的实践层面

    目录 1)Train/Dev/Test sets 2)Bias/Variance 3)Regularization(重点) 4)Why regularization reduces overfitti ...

  10. 深度学习最佳实践系列——权重w初始化

    摘要: 本文是深度学习最佳实践系列博客之权重初始化,主要介绍权重初始化的相关问题及方法,文中提及的权重初始化方法均可以应用于普通的神经网络.卷积神经网络和递归神经网络之中. 作为深度学习的初学者,我有 ...

最新文章

  1. C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明
  2. python自带的库有哪些_python常用的内置库
  3. 使用ffmpeg裁剪和合并视频
  4. python字符编码导致dict中key不同
  5. ActiveMQ实现负载均衡+高可用部署方案
  6. Spring mvc中@RequestMapping 6个基本用法小结
  7. python库--Numpy and pandas
  8. hive-2.3.3安装指北
  9. springcloud整合sentinel
  10. [windows] win10下的SysMain服务
  11. [Python]利用python+ffmpeg合并B站视频及格式转换
  12. 记录一下wandb的用法
  13. CI/CD 流程以及原理
  14. XSS漏洞利用---PHPMyWind 任意密码重置漏洞
  15. 计算机网络水晶头博客,两台电脑组成局域网(交叉线)的水晶头制作详解
  16. VLC-3.0全部详细参数
  17. 用php调用接口api
  18. Android 9 P静默安装/卸载App适配终极指南
  19. 【Go】Go语言中的下划线
  20. linux 桌面 修复工具下载,Redis Desktop Manager 0.9.7发布下载,Redis桌面管理工具

热门文章

  1. matlab smooth函数_基于Matlab的机械臂路径规划
  2. Failed to start bean ‘documentationPluginsBootstrapper‘;
  3. redis数据类型-列表(List)
  4. axure 画小程序效果图_微信小程序-基于canvas画画涂鸦
  5. python settings_python settings如何配置sqlite?
  6. html mysql查询_mysql查询
  7. Javascript特效:表单选中、取消选中、反选
  8. 面向对象(Python):学习笔记之继承
  9. ORB-SLAM3 yaml文件介绍
  10. 从零开始搭二维激光SLAM --- 写作计划