본문 바로가기

Kaggle

[ICR] Probability Calibration Techniques

Probability Calibration Techniques

  • 이진 분류기의 출력을 조정하는 기술
  • 분류기의 잘못된 예측 방지 특히 예측 확률의 임계값 기반 예측의 경우!
  • probability calibaration techniques는 예측된 확률을 조정하여 실제 확률을 더 잘 반영하고 신뢰할 수 있는 예측 제공
  • 종류
    • Platt Scaling
    • Isotonic Regression
    • Beta Calibration
    • SplineCalib
  • 과정
  • 분류기가 예측한 확률과 실제 확률에 대해 그래프를 그려보자.

  • 왼쪽 그래프의 x(predicted)를 확인해보면 0.2~0.8 사이의 값에서 분류기의 예측 확률이 잘 조정되어 있지 않음.
  • 오른쪽 히스토그램을 살펴보면 대부분의 예측 확률값들은 0.1 이하이며 여기에 중점을 두어야 함

 

0~0.1 사이로 축소한 그래프

  • 0~0.1 범위로 축소한 그래프를 봐도 확률들이 잘 조정되어 있지 않음

>> Probability Calibration Techniques 수행

 

platt scaling

lr = LogisticRegression(C=99999999999, solver='liblinear', max_iter=1000)
lr.fit(oof_df.preds.values.reshape(-1, 1), oof_df.target)
lr_preds_calibrated = lr.predict_proba(oof_df.preds.values.reshape(-1, 1))[:,1]
probability_calibration_plot(y_cali=lr_preds_calibrated, calib_method='Platt')

Isotonic Regression

isor = IsotonicRegression(out_of_bounds='clip')
isor.fit(oof_df.preds.values.reshape(-1, 1), oof_df.target)
isor_preds_calibrated = isor.predict(oof_df.preds.values.reshape(-1, 1))

 

결과

>>>No calibration LogLoss:           0.15847
>>>Platt calibration LogLoss:        0.18097
>>>Isotonic calibration LogLoss:     0.13524

Isotonic Regression를 수행한 경우의 logloss가 가장 good >> 가장 정확한 확률 추정치

그러나 Isotonic Regression은 calibration curve를 overfit해서 비현실적 점프가 발생할 수 있음.

따라서 Isotonic Regression 사용시 cross-validation을 사용해 신뢰성을 확인해야함.

 

내용출처

 

ICR - Identifying Age-Related Conditions | Kaggle

 

www.kaggle.com