File size: 3,264 Bytes
1e20656 5c5b397 aae6493 c05f598 b8f8c32 c05f598 29e3408 6d2c26e c05f598 5c5b397 c05f598 dd43c79 a52d12d cb04dfa a52d12d e2fec6b a52d12d 7f6617e 12b6b1a 8f428af 32d2e2e e2fec6b 12b6b1a 9dee9a0 e2fec6b 32d2e2e 8ff5ffd e2fec6b e17a842 4920d02 a52d12d 4920d02 12cd932 16b729b 7d9a734 66da2fe c7a8f72 7d9a734 12cd932 8181851 12cd932 c7a8f72 3e981bf 27bf8b4 32d2e2e 5e90216 a61a907 0707d46 |
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
#Bismillahir Rahmaanir Raheem
#Almadadh Ya Gause RadiAllahu Ta'alah Anh - Ameen
import gradio as gr
import pandas as pd
from pycaret.classification import load_model, predict_model
# load the trained model for predictions
model = load_model('tuned_blend_specific_model_19112021')
# define the function to call
def predict(model, input_df):
predictions_df = predict_model(estimator=model, data=input_df)
predict_label = predictions_df["Label"][0] # either 1 (amputation yes) or 0 (amputation no)
predict_score = predictions_df["Score"][0] # the prediction (accuracy)
return "<b>AMPUTATION RISK: " + str(predict_label) + " SCORE: "+str(predict_score)+"</b>"
#input_dict = {"AGE": age, "GENDER_F": gender, "RACE_Asian": ,"RACE_Black": , "RACE_Coloured":, "RACE_Other":, "RACE_White":, "DIABETES_CLASS_Type 1 diabetes":}
# the parameters in this function, actually gets the inputs for the prediction
def predict_amputation(age, gender, race, diabetes_type):
#input_dict = {"AGE": 70.0, "GENDER_F": 0.0, "RACE_Asian": 1.0, "RACE_Black": 0.0, "RACE_Coloured": 0.0, "RACE_Other": 0.0, "RACE_White": 0.0, "DIABETES_CLASS_Type 1 diabetes":0.0}
#input_dict = {"AGE": 70.0, "GENDER": 0.0, "RACE": 1.0, "DIABETES_CLASS":0.0, "AMPUTATION":0}
#input_dict = {"AGE": 70, "GENDER": "F", "RACE": "Asian", "DIABETES_CLASS":"Type 2 diabetes", "AMPUTATION":''}
#input_dict = {"AGE": 80, "GENDER": "F", "RACE": "Asian", "DIABETES_CLASS":"Type 2 diabetes", "AMPUTATION":''}
diabetes_class = "Type "+str(diabetes_type)+" diabetes"
gender = gender[0]
input_dict = {"AGE": age, "GENDER": gender, "RACE": race, "DIABETES_CLASS":diabetes_class, "AMPUTATION":''}
input_df = pd.DataFrame([input_dict])
return gender#str(predict(model=model, input_df=input_df))
#return str("ALLAH " + " " + str(age) + " " + gender + " " + race + diabetes_type)
#return diabetes_type
#return "ALLAH: "+str(predict(model=model, input_df=input_df)) # calls the predict function when 'submit' is clicked
title = "DIabetes-related Amputation Risk Calculator (DIARC)"
description = "A diabetes-related amputation machine learning model trained on the diabetes dataset from the Inkosi Albert Luthuli Central Hospital (IALCH) in Durban, KwaZulu-Natal, South Africa."
article = "<p style='text-align: center'><span style='font-size: 15pt;'>Copyright © DIARC. 2021. All Rights Reserved. Contact Us: <a href='mailto:smtshali@wol.co.za'>Dr Sifisiso Mtshali</a> or <a href='mailto:mahomedo@ukzn.ac.za'>Dr Ozayr Mahomed</a></span></p>"
iface = gr.Interface(
fn=predict_amputation,
title=title,
description=description,
article=article,
inputs=[gr.inputs.Slider(minimum=0,maximum=100, step=1, default=0, label="Age"), gr.inputs.Dropdown(["Female", "Male"], default="Female", label="Gender"), gr.inputs.Dropdown(["Asian", "Black", "Coloured", "White", "Other"], default="Asian", label="Race"), gr.inputs.Dropdown(["1", "2"], default="1", label="Diabetes Type")],
outputs="text",
theme="huggingface",
examples=[
[50, "Male", "Black", 2],
[76, "Female", "Asian", 2],
[12, "Female", "White", 1],
[30, "Male", "Coloured", 1],
[65, "Female", "Other", 2],
],
)
iface.test_launch()
if __name__ == "__main__":
iface.launch() |