Définir une mesure de compétition
La mesure de compétition est utilisée par Kaggle pour évaluer vos soumissions. De plus, vous devez aussi mesurer la performance de différents modèles sur un ensemble de validation local.
Pour l'instant, votre objectif est d'implanter manuellement quelques mesures de compétition au cas où elles ne seraient pas offertes dans sklearn.metrics.
En particulier, vous allez définir :
l'erreur quadratique moyenne (MSE) pour un problème de régression : $$MSE = \frac{1}{N}\sum_{i=1}^{N}{(y_i - \hat{y}_i)^2}$$
la perte logarithmique (LogLoss) pour un problème de classification binaire : $$LogLoss = -\frac{1}{N}\sum_{i=1}^{N}{(y_i\ln p_i + (1-y_i)\ln (1-p_i))}$$
Cette activité fait partie du cours
Remporter une compétition Kaggle en Python
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)))