Django案例:端到端的预测工具Web界面开发 - bettermorn/ACMWDevHubPPT GitHub Wiki

主要流程

  • 上传数据
  • 选择模型
  • 计算
  • 展示预测结果

功能设计

  1. 介绍: home.html 静态页面,介绍项目背景,使用方法。
  2. 上传数据: data.html 上传excel文件,放在服务器某个路径即可, 注意:文件很大
  3. 选择模型: model.html 显示模型对应的参数,调用模型对应的文件 参考https://github.com/bettermorn/IAI/wiki/HPC%E7%8E%AF%E5%A2%83%E4%BF%A1%E6%81%AF#%E8%BF%90%E8%A1%8C%E6%8A%A5%E5%91%8A
  4. 计算:运行相应的py文件 tst.py and cnnlstm.py 其中文件的模型为已完成的模型,上传到服务器
  5. 显示预测结果:准确度数值以及下载Excel表

使用架构

前端展示

home.html

静态页面

data.html

提示上传成功

model.html

展示不同的模型信息,暂时静态页面,确认按钮的文字为部署

run.html

动态图标,表示在运行

result.html

展示预测准确率、预测序列表和相应预测文件名称

后端功能及函数

views.py 包含所有页面事件处理的结果以及一些主要方法

功能 方法名称 输入 输出
进入主页 home request 展现home.html
根据request信息展现不同的页面 run request 不同页面链接和相应页面数值信息

data.html

功能 方法名称 输入 输出
上传excel表(主要是用于预测的数据集) _upload_data xlsx文件 文件上传到服务器的data目录以及上传成功信息
  • 上传代码参考:
  1. https://www.tutorialspoint.com/file-upload-example-in-python

model.html

功能 方法名称 输入 输出
选择模型 _choose_model 模型名称,如tst,cnn_lstm 将调用方法名称_tst_predict_y,_cnn_lstm_predict_y,_tst_predict,_cnn_lstm_predict传到request中
上传模型 _upload_model 模型名称 将模型文件上传到服务器的models目录

run.html

基本方法

特别说明,输入文件包含特征量和前面的测量长度值(必须有),原因参考 https://github.com/bettermorn/CalCarSoftM/issues/2 ,取预测值的最后一个值作为显示值,预测值长度为输入记录数-1,因为目前的算法中时滞步数为1.

功能 方法名称 输入 输出
预测结果 _fit_model 模型名称即文件名称,如tst,cnnlstm 预测结果的准确率、output产生预测结果文件
用tst预测并比较预测结果 _tst_predict 包含验证数据的数据文件 预测结果的准确率、计算时长、预测的rmse,output产生预测结果文件
用cnnlstm预测并比较预测结果 _cnn_lstm_predict 包含验证数据的数据文件 预测结果的准确率、计算时长、预测的rmse,output产生预测结果文件

预测模型的辅助方法

功能 方法名称 输入 输出
时序数据转为监督数据集 _series_to_supervised 原始数据文件 重组后的用于监督学习的数据集
生成测试集 _get_valid_data 原始数据文件,has_yvalid 测试集的输入和输出集
生成预测报告 _report 预测值,实际值 预测结果的准确率、output目录生成预测结果文件
生成预测报告 _output 预测值 预测值数列、output目录生成预测结果文件
查找预测数据落在±50mm范围的数据 _find 数据集,最大值,最小值 落在区间为真
数据集转换 flatten list flatten后的集合

result.html

功能 参数/工具名称 输入 输出
下载预测结果文件 _download_preds 下载文件名 可成功下载
  • 下载代码参考:
  1. Python downloads file resources from remote servers to local through paramiko https://developpaper.com/python-downloads-file-resources-from-remote-servers-to-local-through-paramiko/
  2. 3 Simple Ways to Download Files With Python https://betterprogramming.pub/3-simple-ways-to-download-files-with-python-569cb91acae6

代码

代码结构

https://github.com/bettermorn/ACMWDevHubPPT/blob/master/UploadImg/%E5%B7%A5%E5%85%B7%E5%B9%B3%E5%8F%B0%E4%BB%A3%E7%A0%81%E7%BB%93%E6%9E%84.png 代码结构和说明

依赖环境

启动 django

cd web
python manage.py runserver