本文旨在帮助您将训练好的机器学习模型通过Flask API应用到实际环境中。我们主要讨论如何利用Flask API来部署模型,以便将其提供给最终用户或系统使用。
线性回归模型的主要目标是确定一个或多个特征(自变量)与连续目标变量(因变量)之间的关系。如果只有一个特征,则称为单变量线性回归;如果有多个特征,则称为多元线性回归。
这个项目分为四个部分:
我们使用HTML构建前端,让用户输入数据。这里有三个区域需要用户填写——利率、第一个月的销售额以及第二个月的销售额。此外,我们还使用CSS对输入按钮、登录按钮和背景进行了样式设置。
序列化是一种将Python对象写入磁盘的方法,这样该对象可以传输到任何地方,然后通过Python脚本反序列化(读取)回来。我们将使用Pickling将Python对象形式的模型转换为字符流形式,以便于传输和存储。
以下是一些示例代码,展示了如何处理缺失值、构建机器学习模型以及反序列化模型。
```python import numpy as np import pandas as pd import pickle
dataset = pd.read_csv('sales.csv')
dataset['rate'].fillna(0, inplace=True) dataset['salesinfirstmonth'].fillna(dataset['salesinfirstmonth'].mean(), inplace=True)
X = dataset.iloc[:, :3] y = dataset.iloc[:, -1]
regressor = LinearRegression() regressor.fit(X, y)
pickle.dump(regressor, open('model.pkl', 'wb'))
model = pickle.load(open('model.pkl', 'rb'))
print(model.predict([[4, 300, 500]])) ```
接下来是构建API,反序列化模型为Python对象格式,并通过GUI获取详细销售数据,根据模型计算预测值。
```python import numpy as np from flask import Flask, request, jsonify, render_template import pickle
app = Flask(name)
model = pickle.load(open('model.pkl', 'rb'))
@app.route('/') def home(): return render_template('index.html')
@app.route('/predict', methods=['POST']) def predict(): intfeatures = [int(x) for x in request.form.values()] finalfeatures = [np.array(intfeatures)] prediction = model.predict(finalfeatures) output = round(prediction[0], 2) return rendertemplate('index.html', predictiontext='Sales should be $ {}'.format(output))
@app.route('/results', methods=['POST']) def results(): data = request.get_json(force=True) prediction = model.predict([np.array(list(data.values()))]) output = prediction[0] return jsonify(output)
if name == "main": app.run(debug=True) ```
最后,我们使用requests模块调用app.py中定义的API,获取第三个月销售额的预测值。
```python import requests
url = 'http://localhost:5000/results' r = requests.post(url, json={'rate': 5, 'salesinfirstmonth': 200, 'salesinsecondmonth': 400}) print(r.json()) ```
通过以上步骤,您可以将训练好的机器学习模型通过Flask API应用到实际环境中,使模型能够服务于最终用户或系统。
原文标题: [b]如何轻松部署机器学习模型[/b]
原文链接: [indent]https://www.kdnuggets.com/2019/10/easily-deploy-machine-learning-models-using-flask.html[/indent]