使用机器学习数据集构建销售预测Web应用程序( 三 )
你可以在本文中查看适用于你的OS和Python版本的命令:Python venv:
接下来 , 我们将通过运行以下命令激活虚拟环境: source server/bin/activate
完成后 , 我们需要安装Flask pip软件包: pip install -U Flask
接下来 , 使用你喜欢的文本编辑器在服务器文件夹中创建一个名为“app.py”的文件 , 并添加以下代码以创建基本的API:
from flask import Flask, jsonify, make_response, request, abortapp = Flask(__name__)@app.route("/")def hello():return "Hello World!"if __name__ == "__main__":app.run()
现在打开终端并运行python3 app.py以启动服务器 。 这将主要在5000端口上启动服务器 。 为了测试API , 请在浏览器中打开此链接:http://localhost:5000/
你应该在浏览器中打印出Hello World 。 如果不是 , 则在启动API时检查API是否在其他端口上运行或在终端上打印错误 。
我们将调用POST API , 因此最好在继续进行之前安装Postman工具 。 使用此工具将向服务器发送POST请求 。
接下来 , 我们需要使用以下命令安装catboost , pandas和Flask-Cors pip软件包:
pip install catboost pandas Flask-Cors
接下来 , 将我们在第1部分末尾下载的经过训练的模型的pickle文件(finalized_model.sav)复制到服务器文件夹中 。
现在 , 使用以下代码更新 app.py:
from flask import Flask, jsonify, make_response, request, abortimport pandas as pdimport catboostimport picklefrom flask_cors import CORS,cross_originmodel = pickle.load(open( "finalized_model.sav", "rb"))app = Flask(__name__)app.config['CORS_HEADERS'] = 'Content-Type'cors = CORS(app)@app.errorhandler(404)def not_found(error):return make_response(jsonify({'error': 'Not found'}), 404)@app.route("/")def hello():return "Hello World!"@app.route("/get_prediction", methods=['POST','OPTIONS'])@cross_origin()def get_prediction():if not request.json:abort(400)df = pd.DataFrame(request.json, index=[0])cols=["CONSOLE","RATING","CRITICS_POINTS","CATEGORY","YEAR","PUBLISHER","USER_POINTS"]df = df[cols]return jsonify({'result': model.predict(df)[0]}), 201if __name__ == "__main__":app.run()
在第6行中 , 我们将训练后的模型导入到我们的python文件中 。
在第10行 , 我们初始化CORS模块以允许来自客户端API调用的请求 。
在第11行 , 我们定义了一个错误处理程序 , 如果从服务器访问了任何未处理的异常或未定义的路径 , 它将发送错误响应 。
对我们来说 , 主要的兴趣点是从第19行定义的get_prediction POST API 。 get_prediction方法是我们从客户端获取数据并提供响应的销售预测 。
在第24行 , 我们将来自API请求的数据转换为pandas数据框 。 现在 , 我们的模型期望列以特定顺序提供正确的响应 。 因此 , 在第25行中 , 我们指定列顺序 。 在接下来的步骤中 , 以所需顺序重新排列列 。
在第27行 , model.predict用于从模型中获取预测 , 并将其作为响应传递给客户端 。 在这一步 , 我们准备好在本地使用该API 。 我们可以通过发送POST-API调用来测试Postman客户端中的API , 如截图所示:
文章插图
你可以在上述请求的正文部分中添加一个JSON示例 , 可以在代码Github-gist中找到 。
如果在此步骤之前一切正常 , 那么恭喜你 , 你现在有了一个后端API , 该API可根据输入参数根据经过训练的模型进行预测 。
推荐阅读
- Biogen将使用Apple Watch研究老年痴呆症的早期症状
- Eyeware Beam使用iPhone追踪玩家在游戏中的眼睛运动
- 唐山四维智能科技有限公司:双臂机器人引领人机协作新纪元
- 计算机专业大一下学期,该选择学习Java还是Python
- 大众展示EV公共充电新解决方案:移动充电机器人
- 普渡机器人获最佳商用服务机器人奖
- 翻译|机器翻译能达60个语种3000个方向,近日又夺全球五冠,这家牛企是谁?
- 假期弯道超车 国美学习“神器”助孩子变身“学霸”
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发