Metricas no Standard

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8921
Registrado: 09 May 2012 01:38

Metricas no Standard

Mensajepor Dalamar » 07 Nov 2017 09:41

En algunas competiciones la metrica que se pide no es standard y tenemos que crear una funcion.

Una lista de metricas adicionales:

Ver: https://github.com/benhamner/Metrics/blob/master/Python/ml_metrics/

Se puede user con import ml_metrics as metrics
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8921
Registrado: 09 May 2012 01:38

Re: Metricas no Standard

Mensajepor Dalamar » 03 Dic 2017 12:05

RMSLE es una metrica muy popular en Kaggle, algunas veces no la tenemos por defecto y tenemos que programarla:

Código: Seleccionar todo

def rmsle(y, y_pred):
    assert len(y) == len(y_pred)
    to_sum = [(math.log(y_pred[i] + 1) - math.log(y[i] + 1)) * 2.0 for i,pred in enumerate(y_pred)]
    return (sum(to_sum) * (1.0/len(y))) * 0.5


Ver version vectorizada (mas rapida): https://www.kaggle.com/jpopham91/rmlse-vectorized

Código: Seleccionar todo

def rmsle(y, y0):
    assert len(y) == len(y0)
    return np.sqrt(np.mean(np.power(np.log1p(y)-np.log1p(y0), 2)))
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8921
Registrado: 09 May 2012 01:38

Re: Metricas no Standard

Mensajepor Dalamar » 06 Dic 2017 07:48

Version rapida de Gini

Código: Seleccionar todo

from numba import jit

# from CPMP's kernel https://www.kaggle.com/cpmpml/extremely-fast-gini-computation
@jit
def eval_gini(y_true, y_prob):
    y_true = np.asarray(y_true)
    y_true = y_true[np.argsort(y_prob)]
    ntrue = 0
    gini = 0
    delta = 0
    n = len(y_true)
    for i in range(n-1, -1, -1):
        y_i = y_true[i]
        ntrue += y_i
        gini += y_i * delta
        delta += 1 - y_i
    gini = 1 - 2 * gini / (ntrue * (n - ntrue))
    return gini
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!


Volver a “Competiciones de Kaggle”

Ingresar