Aan de slagGa gratis aan de slag

Definieer een competitie-metric

De competitie-metric wordt door Kaggle gebruikt om je inzendingen te beoordelen. Daarnaast moet je ook de prestaties van verschillende modellen meten op een lokale validatieset.

Voor nu is je doel om handmatig een paar competitie-metrics te maken voor het geval ze niet beschikbaar zijn in sklearn.metrics.

Concreet definieer je:

  • Mean Squared Error (MSE) voor een regressieprobleem: $$MSE = \frac{1}{N}\sum_{i=1}^{N}{(y_i - \hat{y}_i)^2}$$

  • Logarithmic Loss (LogLoss) voor een binair classificatieprobleem: $$LogLoss = -\frac{1}{N}\sum_{i=1}^{N}{(y_i\ln p_i + (1-y_i)\ln (1-p_i))}$$

Deze oefening maakt deel uit van de cursus

Een Kaggle-competitie winnen met Python

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)))
Code bewerken en uitvoeren