Spaces:
Configuration error
Configuration error
| import gradio as gr | |
| from catboost import CatBoostClassifier | |
| import pickle | |
| import random | |
| municipios = pickle.load(open('municipios.pkl', 'rb')) | |
| unique_values = pickle.load(open('unique_values.pkl', 'rb')) | |
| unique_sexo = unique_values["sexo"].tolist() | |
| unique_sexo.remove('No especificado') | |
| unique_entidad = unique_values['ent_ocurr'].tolist() | |
| unique_entidad.remove('Entidad no especificada') | |
| unique_entidad.sort() | |
| unique_escolaridad = unique_values['escolarida'].tolist() | |
| unique_escolaridad.remove('No especificado') | |
| unique_escolaridad.sort() | |
| unique_estadocivil = unique_values['edo_civil'].tolist() | |
| unique_estadocivil.sort() | |
| unique_sitio = unique_values['sitio_ocur'].tolist() | |
| unique_sitio.sort() | |
| unique_derechohabiente = unique_values['derechohab'].tolist() | |
| unique_derechohabiente.remove('Otra / No especificada') | |
| unique_derechohabiente.sort() | |
| unique_actividad = unique_values['cond_act'].tolist() | |
| unique_actividad.sort(reverse=True) | |
| unique_mes = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', | |
| 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre','Diciembre'] | |
| model = CatBoostClassifier() | |
| model.load_model("model") | |
| def predict(*args): | |
| preds_proba = model.predict_proba([args]) | |
| return {"Covid-19": float(preds_proba[0][0]), "Otra causa de muerte": 1 - float(preds_proba[0][0])} | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| with gr.Column(visible=True) as details_col: | |
| entidad = gr.Dropdown(label="Entidad de deceso", choices=unique_entidad, value=lambda: random.choice(unique_entidad)) | |
| municipio = gr.Dropdown(label="Municipio de deceso", choices=[], interactive=True) | |
| sexo= gr.Radio(label='Género', choices=unique_sexo, value=lambda: random.choice(unique_sexo)) | |
| edad = gr.Slider(1, 120, label="Edad", randomize=True, interactive=True) | |
| escolaridad = gr.Dropdown(label="Escolaridad", choices=unique_escolaridad, value=lambda: random.choice(unique_escolaridad)) | |
| estadocivil = gr.Dropdown(label="Estado civil", choices=unique_estadocivil, value=lambda: random.choice(unique_estadocivil)) | |
| sitio = gr.Dropdown(label="Sitio donde ocurrió el deceso", choices=unique_sitio, value=lambda: random.choice(unique_sitio)) | |
| derechohabiente = gr.Dropdown(label="¿Era derechohabiente?", choices=unique_derechohabiente, value=lambda: random.choice(unique_derechohabiente)) | |
| actividad = gr.Dropdown(label="¿Era económicamente activo?", choices=unique_actividad, value=lambda: random.choice(unique_actividad)) | |
| mes = gr.Dropdown(label="Mes del deceso", choices=unique_mes, value=lambda: random.choice(unique_mes)) | |
| dia = gr.Slider(1, 31, step=1, label="Día del deceso", randomize=True, interactive=True) | |
| gr.Examples([['Ciudad de México','Iztapalapa','Mujer',68,22,'Junio','Primaria incompleta','Casado (a)','IMSS','No','Sí'], | |
| ['Sinaloa','Ahome','Hombre',77,27,'Agosto','Primaria incompleta','Casado (a)','IMSS','Si','No']], | |
| inputs=[entidad,municipio,sexo,edad,dia,mes,escolaridad,estadocivil,sitio,derechohabiente,actividad]) | |
| with gr.Column(): | |
| label = gr.Label() | |
| predecir_btn = gr.Button("Predicción") | |
| predecir_btn.click( | |
| predict, | |
| inputs=[ | |
| entidad, | |
| municipio, | |
| sexo, | |
| edad, | |
| dia, | |
| mes, | |
| escolaridad, | |
| estadocivil, | |
| sitio, | |
| derechohabiente, | |
| actividad, | |
| ], | |
| outputs=[label], | |
| ) | |
| def filter_entidad(entidad): | |
| return gr.Dropdown.update( | |
| choices=municipios[entidad], value=municipios[entidad][0] | |
| ), gr.update(visible=True) | |
| entidad.change(filter_entidad, entidad, [municipio, details_col]) | |
| if __name__ == "__main__": | |
| demo.launch() |