RoTesla's picture
Update app.py
c3352d0
import pandas as pd
import pickle
import gradio as gr
import sklearn
# Cargar el modelo desde un archivo
with open('sepsis_model_refinado.pkl', 'rb') as archivo:
modelo = pickle.load(archivo)
def predict_sepsis(ritmo_cardiaco, plaquetas, bilirrubina, PAM, GCS, creatinina, pO2):
"""
Esta funci贸n clasifica si un paciente tiene sepsis o no en base a los valores
de sus signos vitales: ritmo card铆aco, GCS y PAS.
Args:
- ritmo_cardiaco (float): Ritmo card铆aco del paciente.
- GCS (float): Escala de Coma de Glasgow (GCS, por sus siglas en ingl茅s) del paciente.
- PAS (float): Presi贸n arterial sist贸lica (PAS) del paciente.
Returns:
- str: Cadena que indica si el paciente tiene sepsis ('S铆') o no ('No').
"""
# Crear un DataFrame con los valores de los signos vitales
data = pd.DataFrame({"ritmo_cardiaco": [ritmo_cardiaco],
"plaquetas":[plaquetas],
"bilirrubina":[bilirrubina],
"PAM":[PAM],
"GCS": [GCS],
"creatinina":[creatinina],
"pO2": [pO2]})
# Hacer la predicci贸n de sepsis
pred = modelo.predict(data)[0]
# Retornar la cadena correspondiente
if pred == 0:
return "Negativo"
else:
return "Positivo"
# Crear la interfaz de Gradio
inputs = [gr.inputs.Number(label="ritmo_cardiaco"),
gr.inputs.Number(label="plaquetas"),
gr.inputs.Number(label="bilirrubina"),
gr.inputs.Number(label="PAM"),
gr.inputs.Number(label="GCS"),
gr.inputs.Number(label="creatinina"),
gr.inputs.Number(label="pO2")]
output = gr.outputs.Textbox(label="Sepsis")
gr.Interface(fn=predict_sepsis, inputs=inputs, outputs=output).launch()