Spaces:
Runtime error
Runtime error
import gradio as gr | |
def scaler_model_selector(variable): | |
from joblib import load | |
if variable == 'Longitud de pico': | |
file_scaler = "scaler_longpico.pkl" | |
file_model = "model_longpico.pkl" | |
elif variable == 'Altura de pico': | |
file_scaler = "scaler_altopico.pkl" | |
file_model = "model_altopico.pkl" | |
elif variable == 'Cola': | |
file_scaler = 'scaler_cola.pkl' | |
file_model = 'model_cola.pkl' | |
elif variable == 'Peso': | |
file_scaler = 'scaler_peso.pkl' | |
file_model = 'model_peso.pkl' | |
elif variable == 'Longitud total': | |
file_scaler = 'scaler_longitudtotal.pkl' | |
file_model = 'model_longitudtotal.pkl' | |
model = load(file_model) | |
scaler = load(file_scaler) | |
return model, scaler | |
def classifier(measured_value, model, scaler): | |
import numpy as np | |
data = np.array([measured_value]).reshape(1, -1) | |
data_scaled = scaler.transform(data) | |
pred = model.predict(data_scaled) | |
label = ['hembra', 'macho'] | |
sexo = label[pred[0]] | |
return sexo | |
def complete_classification(variable, valor_medido): | |
model, scaler = scaler_model_selector(variable) | |
sexo = classifier(valor_medido, model, scaler) | |
return sexo | |
variables_opcionales = ['Longitud de pico', 'Altura de pico', 'Cola', 'Peso', 'Longitud total'] | |
title = "Sexaje por biometría del águila arpía" | |
description = """ | |
Esta aplicación se ha creado para clasificar el sexo de las arpías completamente desarrolladas. | |
Para ello basta con tomar cualquiera de las siguientes medidas: longitud de pico, altura del pico, longitud de cola, peso o longitud total. | |
Los modelos generados a partir de estas variables han mostrado una precisión del 100%, pero eso no indica que sean infalibles. | |
Instrucciones para introducir los datos correctamente: | |
1. Longitud de pico en milímetros. | |
2. Altura de pico en milímetros. | |
3. Cola en centímetros. | |
4. Peso en gramos. | |
5. Longitud total en centímetros. | |
6. Los decimales se indican usando puntos "." o comas ",". Nada más, ¿estamos? | |
""" | |
demo = gr.Interface( | |
fn=complete_classification, | |
inputs=[gr.Radio(variables_opcionales), | |
gr.Number()], | |
outputs="text", | |
title=title, | |
description=description | |
) | |
demo.launch() |