Definiera ett tävlingsmått
Tävlingsmåttet används av Kaggle för att utvärdera dina inlämningar. Du behöver också mäta prestandan hos olika modeller på ett lokalt valideringsset.
Målet nu är att manuellt implementera ett par tävlingsmått, för det fall att de inte finns tillgängliga i sklearn.metrics.
Du ska definiera:
Mean Squared Error (MSE) för regressionsproblem: $$MSE = \frac{1}{N}\sum_{i=1}^{N}{(y_i - \hat{y}_i)^2}$$
Logarithmic Loss (LogLoss) för binär klassificering: $$LogLoss = -\frac{1}{N}\sum_{i=1}^{N}{(y_i\ln p_i + (1-y_i)\ln (1-p_i))}$$
Den här övningen är en del av kursen
Vinna en Kaggle-tävling i Python
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)))