IniziaInizia gratis

Definire una metrica di competizione

La metrica di competizione è usata da Kaggle per valutare le tue submission. Inoltre, ti serve anche per misurare le prestazioni dei diversi modelli su un insieme di validazione locale.

Per ora, il tuo obiettivo è implementare manualmente un paio di metriche di competizione nel caso non siano disponibili in sklearn.metrics.

In particolare, definirai:

  • Mean Squared Error (MSE) per un problema di regressione: $$MSE = \frac{1}{N}\sum_{i=1}^{N}{(y_i - \hat{y}_i)^2}$$

  • Logarithmic Loss (LogLoss) per un problema di classificazione binaria: $$LogLoss = -\frac{1}{N}\sum_{i=1}^{N}{(y_i\ln p_i + (1-y_i)\ln (1-p_i))}$$

Questo esercizio fa parte del corso

Vincere una competizione Kaggle con Python

Visualizza il corso

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)))
Modifica ed esegui il codice