Saltar al contenido

Cálculo de MAPE en python

Investigamos en distintos sitios para así traerte la respuesta para tu problema, si continúas con dudas deja la duda y te respondemos con gusto, porque estamos para servirte.

Solución:

En python para comparar por necesidad no igual !=no <>.

Así que necesito:

def mape_vectorized_v2(a, b): 
    mask = a != 0
    return (np.fabs(a - b)/a)[mask].mean()

Otra solución de stats.stackexchange:

def mean_absolute_percentage_error(y_true, y_pred): 
    y_true, y_pred = np.array(y_true), np.array(y_pred)
    return np.mean(np.abs((y_true - y_pred) / y_true)) * 100

Ambas soluciones no funcionan con valores cero. Esto está funcionando desde mí:

def percentage_error(actual, predicted):
    res = np.empty(actual.shape)
    for j in range(actual.shape[0]):
        if actual[j] != 0:
            res[j] = (actual[j] - predicted[j]) / actual[j]
        else:
            res[j] = predicted[j] / np.mean(actual)
    return res

def mean_absolute_percentage_error(y_true, y_pred): 
    return np.mean(np.abs(percentage_error(np.asarray(y_true), np.asarray(y_pred)))) * 100

Espero que ayude.

Si tienes alguna incertidumbre y disposición de aumentar nuestro crónica puedes añadir una anotación y con gusto lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *