hernanhgm's picture
Update app.py
7ae4535
raw
history blame
2.02 kB
import gradio as gr
from joblib import load
import numpy as np
def load_scaler_classifier():
classifier = load('classifier.joblib')
scaler = load('scaler.joblib')
return classifier, scaler
def calculate_means(L_izda, L_dcha):
"""
Calcula la media entre "izda L" y "dcha L"
"""
L_media = np.nanmean([L_izda, L_dcha])
return L_media
def process_inputs(measured_values):
'''
En la aplicaci贸n se introducen estos datos:
'peso'
'L izda'
'L dcha'
El clasificador recibe:
L_media
peso
Parameters
----------
measured_values : iterable
valores introducidos por la aplicacion.
Returns
-------
processed_data : numpy array
array con los datos procesados y con forma (1,2)
para ser leidos por el clasificador
'''
peso, L_izda, L_dcha = measured_values
L_media = calculate_means(L_izda, L_dcha)
processed_data = [L_media, peso]
processed_data = np.array([processed_data]).reshape(1, -1)
return processed_data
def classifier(data, model, scaler):
data_scaled = scaler.transform(data)
pred = model.predict(data_scaled)
label = ['hembra', 'macho']
sexo = label[pred[0]]
return sexo
def complete_classification(*measured_values):
model, scaler = load_scaler_classifier()
data = process_inputs(measured_values)
sexo = classifier(data, model, scaler)
return sexo
title = "Clasificador del sexo de 谩guila real"
description = """
Esta aplicaci贸n se ha creado para clasificar el sexo de las 谩guilas reales completamente desarrolladas.
El modelo de clasificaci贸n se ha entrenado con 31 hembras y 34 machos consiguiendo una precisi贸n del 100%
"""
demo = gr.Interface(
fn=complete_classification,
inputs=[gr.Number(label = 'Peso (g)'),
gr.Number(label = 'L izda (mm)'),
gr.Number(label = 'L dcha (mm)')],
outputs="text",
title=title,
description=description
)
demo.launch()