machine-learning - Flask Web 应用程序中的机器学习模型错误
问题描述
我已经创建了用于心脏病预测的机器学习模型,现在我想使用 FLASK 在我的 Web 应用程序中进行部署。从 Kaggle 获得的数据集。每当我运行应用程序时,我的代码在执行时都会出现一些问题,它会说:
C:\Users\Surface\Desktop\Flask_app>python app.py File "app.py", line 42
x_data = request.form['x_data']
^
IndentationError: unindent does not match any outer indentation level
谁能指导我谢谢你:)
from flask import Flask,render_template,url_for,request
import numpy as np
import pandas as pd
import pickle
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.externals import joblib
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
@app.route('/predict',method=['POST'])
def predict():
df = pd.read_csv("heart.csv")
df = df.drop(columns = ['cp', 'thal', 'slope'])
#features and labels
y = df.target.values
x_data = df.drop(['target'], axis = 1)
#EXTRACT Features
x = (x_data - np.min(x_data)) / (np.max(x_data) - np.min(x_data)).values
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size = 0.2,random_state=0)
# Random Forest Classification
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators = 1000, random_state = 1)
rf.fit(x_train.T, y_train.T)
print("Random Forest Algorithm Accuracy Score : {:.2f}%".format(rf.score(x_test.T,y_test.T)*100))
#persist model in a standard format
from sklearn.externals import joblib
joblib.dump(rf, 'HAP_model.pkl')
HAP_model = open('HAP_model.pkl','rb')
rf = joblib.load(HAP_model)
if request.method=='POST':
x_data = request.form['x_data']
data = [df.drop(['target'], axis = 1)]
vect = rf.transform(data).toarray()
my_prediction = rf.predict(vect)
return render_template('result.html',prediction = my_prediction)
if __name__ == '__main__':
app.run(debug=True)
解决方案
将改善您的预测延迟的一件事是将您的训练代码从导入hearts.csv 转移到将模型保存为预测路径之外的pickle。这样,当有新请求进来时,您不必重新训练模型,这应该会改善您的延迟。
另一种解决方案是使用 BentoML ( https://github.com/bentoml/bentoml ),这是一个用于服务和部署 ML 模型的开源框架。它为您生成了一个 REST API 服务器,而无需编写您自己的烧瓶应用程序。
这是 BentoML 的 scikit-learn 示例:https ://colab.research.google.com/github/bentoml/gallery/blob/master/scikit-learn/sentiment-analysis/sklearn-sentiment-analysis.ipynb 。
推荐阅读
- javascript - 重构 BotFramework WebChat UI - javascript
- r - 使用 geom_bar 和 geom_point 控制 ggplot 中的图例
- python - 如何在 Python 中使用切片/切片表示法
- android - VirtualBox 上的 Android x86:应用程序在启动时崩溃
- laravel - 如何 Xdebug Laravel 作曲家测试
- python - 订单簿匹配程序/算法
- java - 在 JAVA 中执行 cql shell 文件或命令
- powershell - Method invocation failed because [System.Object[]] does not contain a method named ‘op_Division’
- javascript - 快递:空的req.body
- python-3.x - Azure ML 中的 FastText 和数据集与 Python