File size: 2,193 Bytes
159eb29 e6f657c c6aa51a e6f657c a12b4ed 0ebcec0 c6aa51a a12b4ed e6f657c c6aa51a 377b230 c6aa51a 377b230 c6aa51a a12b4ed c6aa51a a12b4ed 0ebcec0 c6aa51a 0ebcec0 159eb29 c6aa51a 377b230 c6aa51a a12b4ed e022594 0ebcec0 d7bf89d d6187ba 8b4ec89 e022594 |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
import gradio as gr
import xgboost
import pandas as pd
import numpy as np
import json
import pickle
def predicter(SpO2, Age, Weight, Height, Temperature, Gender, Race):
'''
xgb_reg = xgboost.XGBClassifier(tree_method = 'approx',
enable_categorical = True,
learning_rate=.1,
max_depth=2,
n_estimators=70,
early_stopping_rounds = 0,
scale_pos_weight=1)
'''
loaded_models = []
with open('HH_ensemble_classifier_online.json', 'r') as file:
model_data = json.load(file)
for item in model_data:
index = item['index']
model = pickle.loads(item['model'].encode('latin1'))
loaded_models.append(model)
'''
xgb_reg.load_model('classifier_fewer_features_HH.json')
'''
if Gender == "Male":
gen = "M"
elif Gender == "Female":
gen = "F"
cont_features = ['SpO2','anchor_age','weight','height','temperature']
cat_features = ['gender','race_group']
user_input = pd.DataFrame([[SpO2/100,Age/91,Weight/309,Height/213,Temperature/42.06,gen,Race]],columns = cont_features+cat_features)
user_input[cat_features] = user_input[cat_features].copy().astype('category')
predictions = np.zeros((len(loaded_models),2))
for i in range(len(loaded_models)):
predictions[i] = loaded_models[i].predict_proba(user_input[cont_features + cat_features])
averaged_prediction = predictions.mean(axis=0)
'''
pred = xgb_reg.predict_proba(user_input)
'''
return {"No Hidden Hypoxemia": float(averaged_prediction[0]), "Hidden Hypoxemia": float(averaged_prediction[1])}
demo = gr.Interface(
fn=predicter,
inputs=[gr.Slider(88.1, 100),"number",gr.inputs.Number(label = "Weight in kg"),gr.inputs.Number(label = "Height in cm"),gr.inputs.Number(label = "Temperature in Celcius"),gr.Radio(["Male", "Female"]),gr.Radio(["White", "Black", "Asian", "Hispanic", "Other"])],
outputs=[gr.Label(label = "Probabilities")],
title = "Model Predictions"
)
demo.launch() |