hernanhgm's picture
add more models
c1e59c3
raw
history blame
2.35 kB
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 = "Clasificador del sexo de buitre negro"
description = """
Esta aplicación se ha creado para clasificar el sexo de las arpías completamente desarrolladas.
Para ello basta con medir, en milímetros, la longitud, la altura del pico, la longitud de la cola, el peso o la longitud total.
Todas estas variables tienen han mostrado, para la base de datos que tenemos, una precisión del 100% pero eso no indica que sean infalibles.
Cómo introducir los datos:
Punto 1: las medidas del pico se meten en MILÍMETROS.
Punto 2: las medidas de la cola y la longitud total se meten en CENTÍMETROS.
Punto 3: el peso se mete en gramos.
Punto 4: para los decimales se usan 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()