Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中从Flask web app转换表单条目_Python_Machine Learning_Flask_Data Science_Pickle - Fatal编程技术网

在Python中从Flask web app转换表单条目

在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个选项输入转换为模型所期望的相同格式。基本上是从用户值创建假人,但我不知道如何在我的应用程序代码中实现这一点(见下文) 心脏病探测器 心脏病探测器 心脏病检测表 年

我创建了一个flask web应用程序表单,它向用户请求值,然后将这些值用于使用pickle保存的机器学习模型中,然后根据用户值返回一个答案。我的问题是,当我使用从数据创建的模型时,其中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()