AKI-prediction / aki_prediction.py
zysnathan's picture
Update aki_prediction.py
7ac2892
import numpy as np
import pandas as pd
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
############best model fit#####################
data=pd.read_csv('./desktop/ARDS/dataset.csv')
X = data.drop(columns='outcome_AKI')
y = data['outcome_AKI']
X_train, X_test, y_train, y_test = train_test_split(X.astype(float), y.astype(float), test_size=0.20, random_state=0)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
method=XGBClassifier(n_estimators=516,learning_rate=0.010199415682142065,min_data_in_leaf=7,max_depth=3,num_leaves=15,
colsample_bytree=0.95,subsample=1.0,reg_alpha=0.09623819103594808)
method.fit(X_train, y_train)
###########web-based prediction XGBoost model############
import gradio as gr
import warnings
warnings.filterwarnings('ignore')
def AKI(Creatinine,PO2,Sepsis,ALB,Lactate,BUN,Tbil,WBC,UO,SpO2):
x = np.array([Creatinine,PO2,Sepsis,ALB,Lactate,BUN,Tbil,WBC,UO,SpO2])
prediction = method.predict_proba(x.reshape(1, -1))[:,1]
return prediction
outputs = gr.outputs.Textbox()
app = gr.Interface(fn=AKI, inputs=['number','number','number','number','number','number','number','number','number','number'],
outputs=outputs,description="AKI prediction model")
app.launch(share=True)