Kaggle 강의 Week3 - Metrics optimization


Coursera 강의인 How to Win a Data Science Competition: Learn from Top Kaggler Week3 Metrics optimization를 듣고 정리한 내용입니다


Metrics optimization


  • 왜 Metrics은 많은가?
  • Competition에서 왜 Metrics에 관심을 가져야 하는가?
  • Loss vs metric
  • 가장 중요한 metrics
    • 분류와 회귀 Task
    • Regression
      • MSE, RMSE, R-squared
      • MAE
      • (R)MSPE, MAPE
      • (R)MSLE
    • Classification
      • Accuracy, Logloss, AUC
      • Cohoen’s (Quadratic weighted) Kappa
    • metric의 최적화 베이스라인
  • metrics의 최적화 테크닉

Metrics

  • 각각의 대회가 metric이 다른 이유는 대회를 주최한 회사가 그들의 특정 문제에 가장 적절한 것을 결정하기 때문
    • 또한 문제마다 다른 metrics
  • Online shop은 effectiveness를 최대화하는 것이 목표
    • Effectiveness를 정의
    • 웹사이트에 방문한 횟수, 주문수로 나눌 수 있음
    • 이런 것을 주최자들이 결정
  • 더 나은 점수를 받기 위해 metric을 잘 이해하는 것은 필수

Regression metrics review 1

  • MSE
    • Mean Sqaured Error
    • \frac{1}{N}\sum_{i=1}^{N}(y_{i}-\hat{y_{i}})^{2}
    • MSE는 우리의 예측값의 평균 squared error를 측정
    • Target value의 mean
    • 참고 자료
  • RMSE
    • Root mean square error
    • \sqrt{\frac{1}{N}\sum_{i=1}^{N}(y_{i}-\hat{y_{i}})^{2}}
  • MAE
    • Mean Absolute Error
    • \frac{1}{N}\sum_{i=1}^{N}\left|y_{i}-\hat{y_{i}}\right|
    • MAE는 finance에서 널리 사용됨
    • Target value의 median
    • Outliear의 영향을 받지 않음(outliear에게 robust)
  • MAE vs MSE
    • MAE
      • 아웃라이어가 있는 경우
      • 아웃라이어라고 확신하는 경우
    • MSE
      • 우리가 신경써야 하는 관측하지 못한 값이라고 생각할 경우
  • MSE, RMSE, R-squared
    • 최적화 관점에서 같음
  • MAE
    • 아웃라이어에 robust

Regression metrics review 2

  • Shop에서 매출을 예측하는 문제
    • Shop1 : predicted 9, sold 10, MSE = 1
    • Shop2 : predicted 999, sold 1000, MSE = 1
    • Shop1이 더 cirtical한데, MAE와 MSE는 동일함
    • 그래프도 모든 Target value마다 동일(곡선이거나 V이거나)
    • 위 문제점을 해결하기 위해 나온 것이 MSPE, MAPE
  • relative error의 합에, 100%/N을 곱함
  • MSE와 MAE의 weight 버전이라고 생각할 수도 있음
  • MSPE
  • MAPE
  • RMSLE
    • Root Mean Squared Logarithmic Error
    • MSPE와 MAPE와 동일한 상황에 사용 (relative error)
    • prediction value와 target value가 큰 숫자일 때, 큰 차이를 벌점으로 내고싶지 않을 때 사용
    • 과소평가된 항목에 패널티
  • Conclusion
    • (R)MSPE
      • Weighted version of MSE
    • MAPE
      • Weighted version of MAE
    • (R)MSLE
      • MSE in log space

Classification metrics review

  • Accuracy
    • 분류기의 성능을 측정할 때 가장 간단히 사용할 수 있음
    • Best constant : predict the most frequent class
    • 데이터셋의 라벨 A가 10%, B가 90%일 때 B로만 예측한 분류기는 90%의 accuracy를 가지는데, 이 분류기는 좋은 것일까?
    • optimize하기 어려움
  • Logarithmic loss(logloss)
    • logloss가 잘못된 답변에 대해 더 강하게 패널티 부여
  • Area Under Curve (AUC ROC)
    • Binary task에서만 사용
    • 특정 threshold를 설정
    • 예측의 순서에 의존적이며 절대값엔 의존적이지 않음
    • 설명 가능
      • AUC
      • Pairs ordering
        • AUC = # correctly ordered paris / total number of paris = 1 - # incorrectly ordered pairs / total number of pairs
  • Cohen’s Kappa motivation
    • Baseline accuracy는 라벨의 개수가 제일 많은 것으로 설정
    • Accuracy = 0.9(baseline) -> my_score = 0
    • Accuracy = 1 -> my_score = 1
    • Mse에서 r squared의 역할과 유사
    • 일종의 normalization
    • kappa는 baseline을 p_{e}로 지정(랜덤하게 계산)
    • Weighted error

General approaches for metrics optimization

  • Loss and metric
    • 동의어 : loss, cost, objective
  • Target metrics : 우리가 최적화 하고 싶은 것
    • 그러나 이걸 효율적으로 올리는 방법을 바로 알긴 어려움
  • Optimization loss : 모델을 최적화 하는 것
    • Target metrics을 직접 최적화하기 어려울 때 사용
  • Target metric 최적화 접근 방법
    • 일단 올바른 모델을 실행
      • MSE, Logloss
    • Train을 전처리하고 다른 metric을 최적화
      • MSPE, MAPE, RMSLE
    • 후처리로 예측된 metric 최적화
      • Accuracy, Kappa
    • Custom loss function
      • 할 수 있으면 언제나!
    • Early stopping을 사용

Regression metrics optimization

  • RMSE, MSE, R-squared
    • 대부분의 라이브러리에 loss function으로 구현되어 있음
    • L2 loss
  • MAE
    • L1 loss, Median regression
  • MSPE and MAPE
    • 둘 다 Weighted version이기 때문에 쉽게 구현 가능
  • RMSLE

Classification metrics optimization 1

  • Logloss
    • Probability calibration(눈금)
      • Platt scaling
        • 예측값에 Logistic Regression을 fit(마치 stacking처럼)
      • Isotonic regression
        • 예측값에 Isotonic Regression을 fit(마치 stacking처럼)
      • Stacking
        • 예측값에 XGBoost나 neuralnet을 fit
  • Accuracy
    • 이걸 직접적으로 optimize하는 쉬운 방법은 없음
    • 다른 metric을 optimize

Classification metrics optimization 2

  • AUC
    • Pointwise loss
      • single object에 대한 loss
    • Pairwise loss
      • pairwise loss
  • Quadratic weighted Kappa
    • Optimize MSE and find right thresholds
      • Simple!
    • Custom smooth loss for GBDT or neural nets
      • Harder
    • 구현 코드

Reference


이 글이 도움이 되셨다면 공감 및 광고 클릭을 부탁드립니다 :)




© 2017. by Seongyun Byeon

Powered by zzsza