在Python中从Flask web app转换表单条目
我创建了一个flask web应用程序表单,它向用户请求值,然后将这些值用于使用pickle保存的机器学习模型中,然后根据用户值返回一个答案。我的问题是,当我使用从数据创建的模型时,其中3个特征已使用在Python中从Flask web app转换表单条目,python,machine-learning,flask,data-science,pickle,Python,Machine Learning,Flask,Data Science,Pickle,我创建了一个flask web应用程序表单,它向用户请求值,然后将这些值用于使用pickle保存的机器学习模型中,然后根据用户值返回一个答案。我的问题是,当我使用从数据创建的模型时,其中3个特征已使用转换为虚拟值。get_dummies(),该表单显然不再工作,因为用户值与模型的预期值不匹配。我想保持表单的原样,但我想将用户的3个选项输入转换为模型所期望的相同格式。基本上是从用户值创建假人,但我不知道如何在我的应用程序代码中实现这一点(见下文) 心脏病探测器 心脏病探测器 心脏病检测表 年
转换为虚拟值。get_dummies()
,该表单显然不再工作,因为用户值与模型的预期值不匹配。我想保持表单的原样,但我想将用户的3个选项输入转换为模型所期望的相同格式。基本上是从用户值创建假人,但我不知道如何在我的应用程序代码中实现这一点(见下文)
心脏病探测器
心脏病探测器
心脏病检测表
年龄
性别
--选择一个选项--
男性
女性
胸痛型
--选择一个选项--
典型心绞痛
非典型心绞痛
非心绞痛性疼痛
无症状
静息血压(单位:毫米汞柱)
血清胆固醇(mg/dl)
空腹血糖>120 mg/dl
--选择一个选项--
假的
真的
静息心电图结果
--选择一个选项--
正常的
有ST-T波异常
可能或明确的左心室肥厚
最大心率
运动性心绞痛
--选择一个选项--
不
对
ST段凹陷
山顶段的坡度
--选择一个选项--
上升
平的
下斜
{{result}}
import numpy as np
import pickle
from flask import Flask, request, render_template
model = pickle.load(open('model.pkl', 'rb'))
app = Flask(__name__)
@app.route('/')
def home():
return render_template('Heart Disease Classifier.html')
@app.route('/predict', methods=['POST'])
def predict():
features = [float(i) for i in request.form.values()]
array_features = [np.array(features)]
prediction = model.predict(array_features)
output = prediction
if output == 1:
return render_template('Heart Disease Classifier.html',
result='The patient is not likely to have heart disease!')
else:
return render_template('Heart Disease Classifier.html',
result='The patient is likely to have heart disease!')
if __name__ == '__main__':
app.run()