Spaces:
Sleeping
Sleeping
import gradio as gr | |
import joblib as jb | |
import pandas as pd | |
pipe = jb.load('heart1.pkl') | |
def predict(age, sex, cp, trtbps, chol, fbs, restecg, thalachh, exng, oldpeak, slp, caa, thall): | |
if sex=="Male": | |
sex=1 | |
else: | |
sex=0 | |
if cp=="Typical Angina": | |
cp=0 | |
elif cp=="Typical Angina": | |
cp=1 | |
elif cp=="Atypical Angina": | |
cp=2 | |
elif cp=="Non-Anginal pain": | |
cp=3 | |
elif cp=="Asymptomatic": | |
cp=4 | |
else: | |
cp=0 | |
if fbs>120: | |
fbs=1 | |
else: | |
fbs=0 | |
if restecg=="Normal": | |
restecg=0 | |
elif restecg=="ST-T wave abnormality": | |
restecg=1 | |
elif restecg=="Definite left Ventricular hypertrophy": | |
restecg=2 | |
else: | |
restecg=0 | |
if slp=="Unsloping": | |
slp=0 | |
elif restecg=="flat": | |
slp=1 | |
elif restecg=="Downsloping": | |
slp=2 | |
else: | |
slp=0 | |
if exng=="Yes": | |
exng=1 | |
else: | |
exng=0 | |
if thall=="Null": | |
thall=0 | |
elif thall=="Fixed defect": | |
thall=1 | |
elif cp=="Normal": | |
thall=2 | |
elif cp=="Reversable defect": | |
thall=3 | |
else: | |
thall=0 | |
x = pd.DataFrame([[age, sex, cp, trtbps, chol, fbs, restecg, thalachh, exng, oldpeak, slp, caa, thall]]) | |
x.columns = ["age", "sex", "cp", "trtbps", "chol", "fbs", "restecg", "thalachh", "exng", "oldpeak", "slp", "caa", "thall"] | |
prediction = pipe.predict(x) | |
ans = prediction[0] | |
if ans>=1: | |
ans = 100 | |
elif ans<=0: | |
ans = 0 | |
else: | |
ans = ans*100 | |
if ans>50: | |
final = str(int(ans)) + "%" +"\n>50% Diameter narrowing.\nMore chance of heart disease." | |
else: | |
final = str(int(ans)) + "%" + "\n< 50% Diameter narrowing.\nLess chance of heart disease." | |
return final | |
app = gr.Interface(title="Heart Attack Predictor",fn=predict, | |
inputs=[ | |
gr.inputs.Number(label='Age'), | |
gr.inputs.Radio(["Male","Female"],label='Sex'), | |
gr.inputs.Radio(["Typical Angina","Atypical Angina","Non-Anginal pain","Asymptomatic"],label='Chest Pain'), | |
gr.inputs.Number(label='Resting blood pressure (in mm Hg)'), | |
gr.inputs.Number(label='Cholestoral in mg/dl '), | |
gr.inputs.Number(label='Fasting blood sugar'), | |
gr.inputs.Radio(["Normal","ST-T wave abnormality","Definite left Ventricular hypertrophy"],label='Resting Rlectrocardiographic Results'), | |
gr.inputs.Number(label='Maximum Heartrate achieved'), | |
gr.inputs.Radio(["Yes","No"],label='Exercise induced Angina'), | |
gr.inputs.Number(label='ST depression induced by exercise'), | |
gr.inputs.Radio(["Unsloping","flat","Downsloping"],label='Slope of the peak exercise ST segment'), | |
gr.inputs.Slider(minimum=0,maximum=3,step=1,label='Number of major vessels'), | |
gr.inputs.Radio(["Null","Fixed defect","Normal","Reversable defect"],label='Thalassemia'), | |
], | |
outputs=gr.outputs.Textbox(label="Prediction") | |
) | |
app.launch() | |