시작하기무료로 시작하기

대회 평가지표 정의하기

Competition metric은 Kaggle에서 제출물을 평가할 때 사용하는 지표예요. 또한 로컬 검증 세트에서 서로 다른 모델의 성능을 비교할 때도 필요합니다.

이번에는 sklearn.metrics에 없는 경우를 대비해, 몇 가지 대회 지표를 직접 구현해 볼 거예요.

구체적으로 다음을 정의합니다:

  • 회귀 문제의 평균제곱오차(Mean Squared Error, MSE): $$MSE = \frac{1}{N}\sum_{i=1}^{N}{(y_i - \hat{y}_i)^2}$$

  • 이진 분류 문제의 로그 손실(Logarithmic Loss, LogLoss): $$LogLoss = -\frac{1}{N}\sum_{i=1}^{N}{(y_i\ln p_i + (1-y_i)\ln (1-p_i))}$$

이 연습은 강의의 일부입니다

Python으로 Kaggle 대회 공략하기

강의 보기

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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)))
코드 편집 및 실행