将机器学习应用嵌入到Web应用中

本章介绍如何将机器学习模型应用到Web应用中,以实现即时学习和预测。主要内容包括序列化scikit-learn模型,使用SQLite数据库,通过Flask框架开发Web应用,并部署到公共Web服务器。讲解了Flask相比于Django的简洁性,以及在本地和云端运行应用的步骤。
摘要由CSDN通过智能技术生成

前面的ML模型都是在本地运行计算的,此chapter介绍如何将模型应用在Web app上以获得实时学习、应用
这一章主要偏机器学习功能Web的简单开发,与算法关系不大。没有跳过反而收获不少。不得不佩服作者在构思’算法+系统‘时所作出的为读者充分考虑的思想

本章主要实现下列功能:(将情感分析学习器上线Web,使之能即时搜集新数据、学习新数据、更新学习器、做出预测。最后作者还提供了一种上传到公共Web空间的一种简便方式)

  • Saving the current state of a trained machine learning model
  • Using databases for data storage
  • Developing a web application using the popular Flask web framework
  • Deploying a machine learning application to a public web server

Serializing fitted scikit-learn estimators

这里应用的是 sentiment analysis 中的out_of_core.py中训练的线上模型为例,关于这个学习模型主要是一个one_line的学习模式,就是所有数据不在本地内存中。

即时学习的方法

fit 是全部学习所有的数据,而estimator的part_fit(X_new)方法可以在原来的学习器基础上学习新数据,更新新性能。

序列化

序列化将本地变量(如estimator)存储为二进制pkl文件,当大型的estimator需要在网络空间使用时直接dump出pkl,这一过程的速度回很快。(想想上章节中本地memory学习器学习完需要40min,而on_line训练完成也需要3min,这放在Web服务器上是不可能的,所以序列化是必要的)

import pickle
import os
dest = os.path.join('movieclassifier', 'pkl_objects')
if not os.path.exists(dest):
    os.makedirs(dest)
# 为了方便,将停用词也序列化
pickle.dump(stop,open(os.path.join(dest, 'stopwords.pkl'),'wb'),protocol=4)
pickle.dump(clf,open(os.path.join(dest, 'classifier.pkl'), 'wb'),protocol=4)

数据库

作者用的是Sqlite,emmmmmm一言难尽啊

Sqlite ,对就是Django初始化使用的轻量级数据库,不需要额外的配置接口什么的,可以像访问一个文件一样地访问他。。。 多么厉害友好!

所以,我决定换掉它,用Mysql

至于为啥,习惯吧… 作者的初衷是好的,因为这样免去了学习新数据库的成本和连接耽误的风险,作者面向的对象是没有Web开发经验的人,所以这一点是值得肯定的。

Flask框架

Why Flask??作者是这样回答的:

Flask is also known as a microframework, which means that its core is kept lean
and simple but can be easily extended with other libraries. Although the learning
curve of the lightweight Flask API is not nearly as steep as those of other popular
Python web frameworks, such as Django, I encourage you to take a look at the
official Flask documentation at http://flask.pocoo.org/docs/0.12/ to learn more about
its functionality.

哦,你说Flask比Django简单,好吧那就用Flask吧!

控制层

本质上讲 Flask也是用的MVC理论。

Flask最主要的就是app.py文件 相当于Django的views.py ,不同的是他还负责路径和数

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值