File size: 2,570 Bytes
221a3ee
7f42b7f
2ae0259
8ff934a
 
2ae0259
 
221a3ee
56834d1
 
 
58fa5a3
 
 
 
 
 
 
 
 
 
 
 
221a3ee
 
 
 
 
 
 
 
 
 
 
 
 
 
0fde028
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import gradio as gr
import pycaret
from pycaret.classification import *
import pandas as pd
healthcare_stroke_data = pd.read_csv("healthcare-dataset-stroke-data.csv")

modelvalue= setup(data = healthcare_stroke_data, target = 'stroke', normalize = True, normalize_method = 'zscore', transformation=True, fix_imbalance = True, session_id=123, fold = 60, remove_outliers= True, outliers_threshold = 0.05, remove_multicollinearity=True, multicollinearity_threshold = 0.9)

best = compare_models(sort = 'AUC', n_select = 15)
compare_model_results = pull()


def predict(model, gender, age, hypertension, heart_disease, ever_married, work_type, Residence_type, avg_glucose_level, bmi, smoking_status):
  
    df = pd.DataFrame.from_dict({'gender': [gender], 'age': [age], 'hypertension': [hypertension], 'heart_disease':[heart_disease], 'ever_married':[ever_married],
                                 'work_type': [work_type], 'Residence_type': [Residence_type], 'avg_glucose_level': [avg_glucose_level], 'bmi':[bmi],'smoking_status':[smoking_status]})
    model_index = list(compare_model_results['Model']).index(model)
    model = best[model_index]
    pred = predict_model(model, df, raw_score=True)
    return {'Yes': pred['Score_Yes'][0].astype('float64'), 
            'No': pred['Score_No'][0].astype('float64' )}
            
            
model = gr.inputs.Dropdown(list(compare_model_results['Model']),label="Model")
gender = gr.inputs.Dropdown(choices=["Male", "Female"],label = 'gender')
age = gr.inputs.Slider(minimum=1, maximum=100, default=data['age'].mean(), label = 'age')
hypertension = gr.inputs.Dropdown(choices=["1", "0"],label = 'hypertension')
heart_disease = gr.inputs.Dropdown(choices=["1", "0"],label ='heart_disease')
ever_married = gr.inputs.Dropdown(choices=["Yes", "No"], label ='ever_married')
work_type = gr.inputs.Dropdown(choices=["children", "Govt_job","Never_worked","Private","Self-employed"],label = 'work_type')
Residence_type = gr.inputs.Dropdown(choices=["Urban", "Rural"],label = 'Residence_type')
avg_glucose_level =	gr.inputs.Slider(minimum=-55, maximum=300, default=data['avg_glucose_level'].mean(), label = 'avg_glucose_level')
bmi = gr.inputs.Slider(minimum=-10, maximum=100, default=data['bmi'].mean(), label = 'bmi')
smoking_status = gr.inputs.Dropdown(choices=["Unknown", "smokes","never_smoked", "formerly_smoked"], label ='smoking_status')

gr.Interface(predict,[model, gender, age, hypertension, heart_disease, ever_married, work_type, Residence_type, avg_glucose_level, bmi, smoking_status], "label",live=True).launch()