当前位置:   article > 正文

数据分析36计(28):Python 使用 Flask+Docker, 100行代码内实现机器学习实时预测​...

用flask发布网络api,实现在线预测功能

本文的想法是快速轻松地构建 Docker 容器,Python 以使用 Flask 实现机器学习模型执行在线预测 API 。我们将使用 Docker 和 Flask-RESTful 实现线性判别分析和多层感知器神经网络模型的实时预测。

项目包括的文件有:Dockerfile,train.py,api.py,requirements.txt, train.csv,test.json。

  • Dockerfile 将被用来构建 Docker 镜像

  • train.py 使用规范化的 EEG 数据训练两个分类模型(线性判别分析和多层感知器神经网络模型)

  • api.py 是将被调用执行使用 REST API 的在线预测接口脚本

  • requirements.txt(flask, flask-restful, joblib)是 Python 依赖

  • train.csv 用于训练模型的数据

  • test.json 是一个 json 文件,包含待预测的数据

Python 构建 Flask-restful API

第一步先思考我们需要构建哪些接口,输入和输出分别是什么。在这个例子里,我们将使用 包含 1300 行,160 列特征的 EGG 数据 test.json 文件。我们想要实现的 API 包括:

  1. 查询数据

请求方式:GET

请求示例:http://0.0.0.0:5000/line/232

参数说明:line, 必须, 行号

返回结果:

{"Line""232""# Letter""4", ...}
  1. 获取预测结果 请求方式:GET

请求示例:http://0.0.0.0:5000/prediction/232

参数说明:line, 必须, 行号

返回结果:

  1. {
  2.   "prediction LDA""21",
  3.   "prediction Neural Network"8
  4. }

结果说明:

  • prediction LDA: LDA 模型分类预测结果

  • prediction Neural Network: 神经网络模型预测结果

  1. 获取模型效果评分 请求方式:GET

请求示例:http://0.0.0.0:5000/score

返回结果:

  1. {
  2.   "Score LDA"0.17846,
  3.   "Score Neural Network"0.596923 
  4. }

结果说明:

  • Score LDA: LDA 模型评分

  • Score Neural Network: 神经网络模型评分

最后,我们能通过 HTTP 请求来获取结果,该 api.py 文件实现如下:

  1. # We now need the json library so we can load and export json data
  2. import json
  3. import os
  4. import numpy as np
  5. from sk
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号