使用机器学习数据集构建销售预测Web应用程序( 二 )
import catboost as catcat_feat = ['CONSOLE','CATEGORY', 'PUBLISHER', 'RATING']features = list(set(train.columns)-set(['SalesInMillions']))target = 'SalesInMillions'model = cat.CatBoostRegressor(random_state=100,cat_features=cat_feat,verbose=0)model.fit(train[features],train[target])
步骤5:检查模型的准确性
首先 , 我们根据测试数据集创建真实的预测:
y_true= pd.DataFrame(data=http://kandian.youth.cn/index/test[target], columns=['SalesInMillions'])test_temp = test.drop(columns=[target])
接下来 , 我们在测试数据集上运行训练良好的模型以获取模型预测并检查模型准确性
y_pred = model.predict(test_temp[features])from sklearn.metrics import mean_squared_errorfrom math import sqrtrmse = sqrt(mean_squared_error(y_true, y_pred))print(rmse)#Output: 1.5555409360901584
我们的RMSE值为1.5 , 这相当不错 。 有关在出现回归问题时准确性指标的更多信息 , 可以参考本文 。
现在 , 我们可以将模型保存到pickle文件中 , 然后将其保存在本地:
import picklefilename = 'finalized_model.sav'pickle.dump(model, open(filename, 'wb'))
保存pickle文件后 , 你可以从Google Colab Notebook文件部分的左侧边栏中下载并保存在本地文章插图
额外提示
- 添加更多数据
- 提高模型效率
【使用机器学习数据集构建销售预测Web应用程序】如果你已完成此步骤 , 请轻拍一下自己的背 , 因为我们刚刚完成了项目的第一个主要部分 。 休息一会儿 , 拉伸一下 , 然后开始本文的下一部分 。
第2部分:根据模型创建后端API我们将使用Python Flask创建后端API 。
因此 , 首先在本地创建一个名为server的文件夹 。 另外 , 如果还没有 , 请在你的计算机上安装Python和pip软件包管理器 。
接下来 , 我们需要在文件夹中创建一个虚拟环境 。 我在Linux上使用python3 , 因此我创建虚拟环境的命令为:python3 -m venv server 。
你可以在本文中查看适用于你的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调用的请求 。
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- QuestMobile|QuestMobile:百度智能小程序月人均使用个数达9.6个
- 机器人|网络里面的假消息忽悠了非常多的小喷子和小机器人
- 跑腿|机器人“小北”上岗 让办事群众少跑腿
- 计算机学科|机器视觉系统是什么
- 轻松|使用 GIMP 轻松地设置图片透明度
- 机器人|外骨骼康复训练机器人助力下肢运动功能障碍患者康复训练
- 电池容量|Windows 自带功能查看笔记本电脑电池使用情况,你的容量还好吗?
- 教学|机器人教学的目标方案