File size: 2,018 Bytes
45c918e
 
 
 
7ae4535
 
 
 
45c918e
 
 
 
 
 
 
 
 
 
 
5b7e196
45c918e
 
 
 
 
5b7e196
45c918e
 
 
 
 
 
 
 
 
5b7e196
45c918e
 
 
5b7e196
45c918e
 
5b7e196
45c918e
 
 
 
 
 
 
 
 
 
 
 
 
 
7ae4535
45c918e
 
 
 
 
 
 
 
 
 
 
 
5b7e196
 
45c918e
 
 
 
 
4e99b29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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()