Define una métrica de la competición
Kaggle usa la métrica de la competición para evaluar tus envíos. Además, tú también necesitas medir el rendimiento de distintos modelos en un conjunto de validación local.
Por ahora, tu objetivo es implementar manualmente un par de métricas de competición por si no están disponibles en sklearn.metrics.
En concreto, definirás:
Mean Squared Error (MSE) para el problema de regresión: $$MSE = \frac{1}{N}\sum_{i=1}^{N}{(y_i - \hat{y}_i)^2}$$
Logarithmic Loss (LogLoss) para el problema de clasificación binaria: $$LogLoss = -\frac{1}{N}\sum_{i=1}^{N}{(y_i\ln p_i + (1-y_i)\ln (1-p_i))}$$
Este ejercicio forma parte del curso
Cómo ganar una competición de Kaggle con Python
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
import numpy as np
# Import MSE from sklearn
from sklearn.metrics import mean_squared_error
# Define your own MSE function
def own_mse(y_true, y_pred):
# Raise differences to the power of 2
squares = np.____(y_true - y_pred, 2)
# Find mean over all observations
err = np.____(squares)
return err
print('Sklearn MSE: {:.5f}. '.format(mean_squared_error(y_regression_true, y_regression_pred)))
print('Your MSE: {:.5f}. '.format(own_mse(y_regression_true, y_regression_pred)))