Zdefiniuj metrykę konkursową
Metryka konkursowa jest używana przez Kaggle do oceny twoich zgłoszeń. Musisz też mierzyć wydajność różnych modeli na lokalnym zbiorze walidacyjnym.
Twoim zadaniem jest ręczne zaimplementowanie kilku metryk konkursowych – na wypadek, gdyby nie były dostępne w sklearn.metrics.
W szczególności zdefiniujesz:
Mean Squared Error (MSE) dla problemu regresji: $$MSE = \frac{1}{N}\sum_{i=1}^{N}{(y_i - \hat{y}_i)^2}$$
Logarithmic Loss (LogLoss) dla problemu klasyfikacji binarnej: $$LogLoss = -\frac{1}{N}\sum_{i=1}^{N}{(y_i\ln p_i + (1-y_i)\ln (1-p_i))}$$
To ćwiczenie jest częścią kursu
Zwycięstwo w konkursie Kaggle w Pythonie
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)))