Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| from sklearn.preprocessing import MinMaxScaler | |
| import pickle | |
| import joblib | |
| # Create a min-max scaler object | |
| scaler = MinMaxScaler() | |
| def predict(Height,Weight,INR,Race,Age,gender,Diabetes,Simvastatin,Amiodarone,VKORC1, ml_model): | |
| age_encoder = joblib.load('my_le_age.joblib') | |
| en_age = age_encoder.transform([Age])[0] | |
| race_encoder = joblib.load('my_le_race.joblib') | |
| en_race = race_encoder.transform([Race])[0] | |
| gen_encoder = joblib.load('my_le_gender.joblib') | |
| en_gen = gen_encoder.transform([gender])[0] | |
| sim_encoder = joblib.load('my_le_sim.joblib') | |
| en_sim = sim_encoder.transform([Simvastatin])[0] | |
| ami_encoder = joblib.load('my_le_ami.joblib') | |
| en_ami = ami_encoder.transform([Amiodarone])[0] | |
| vk_encoder = joblib.load('my_le_vk.joblib') | |
| en_vk = vk_encoder.transform([VKORC1])[0] | |
| input_features=np.array([Height,Weight,INR,en_race,en_age,en_gen,Diabetes,en_sim,en_ami,en_vk]).reshape(1,-1) | |
| norm_features = scaler.fit_transform(input_features) | |
| if(ml_model == 'Linear'): | |
| with open('lrn_model.pkl', 'rb') as file: | |
| lrn_model = pickle.load(file) | |
| res = lrn_model.predict(norm_features)[0] | |
| elif(ml_model == 'SVRegressor'): | |
| with open('svr_model.pkl', 'rb') as file: | |
| lrn_model = pickle.load(file) | |
| res = lrn_model.predict(norm_features)[0] | |
| elif(ml_model == 'Decision Trees Regressor'): | |
| with open('dt_model.pkl', 'rb') as file: | |
| lrn_model = pickle.load(file) | |
| res = lrn_model.predict(norm_features)[0] | |
| elif(ml_model == 'Lasso Regression'): | |
| with open('lasso_model.pkl', 'rb') as file: | |
| lrn_model = pickle.load(file) | |
| res = lrn_model.predict(norm_features)[0] | |
| else: | |
| with open('mlp_model.pkl', 'rb') as file: | |
| lrn_model = pickle.load(file) | |
| res = lrn_model.predict(norm_features)[0] | |
| return res | |
| return en_gen | |
| Height = gr.inputs.Number(label='Height (cm)') | |
| Weight = gr.inputs.Number(label='Weight (kg)') | |
| INR = gr.inputs.Number(label='INR on Reported Therapeutic Dose of Warfarin') | |
| Race = gr.inputs.Dropdown(['African-American','Asian','Black','Black African','Black Caribbean', | |
| 'Black or African American','Black other','Caucasian','Chinese', | |
| 'Han Chinese','Hispanic','Indian','Intermediate' ,'Japanese', 'Korean', | |
| 'Malay', 'Other' ,'Other (Black British)' ,'Other (Hungarian)', | |
| 'Other Mixed Race' ,'White' ,'other'], label='Race') | |
| Age = gr.inputs.Dropdown(['10 - 19','20 - 29','30 - 39','40 - 49','50 - 59','60 - 69','70 - 79','80 - 89','90+'],label='Age') | |
| gender = gr.inputs.Dropdown(["male", "female"], label="Gender") | |
| Diabetes = gr.inputs.Number(label='Diabetes') | |
| Simvastatin = gr.inputs.Number(label='Simvastatin (Zocor)') | |
| Amiodarone = gr.inputs.Number(label='Amiodarone (Cordarone)') | |
| VKORC1 = gr.inputs.Dropdown(['A/A','A/G','G/G'], label='VKORC1 genotype: -1639 G>A (3673); chr16:31015190; rs9923231; C/T') | |
| ml_model = gr.inputs.Dropdown(["Linear", "SVRegressor", "Decision Trees Regressor","Lasso Regression", "MLP Neural Network"], label="ML Model") | |
| outputs = [ | |
| gr.outputs.Textbox(label="Dose"), | |
| ] | |
| # Create interface | |
| interface = gr.Interface( | |
| fn=predict, | |
| inputs=[Height,Weight,INR,Race,Age,gender,Diabetes,Simvastatin,Amiodarone,VKORC1, | |
| ml_model], | |
| outputs=outputs | |
| ) | |
| # Launch interface | |
| interface.launch() |