Probability Calibration Techniques
- 이진 분류기의 출력을 조정하는 기술
- 분류기의 잘못된 예측 방지 특히 예측 확률의 임계값 기반 예측의 경우!
- probability calibaration techniques는 예측된 확률을 조정하여 실제 확률을 더 잘 반영하고 신뢰할 수 있는 예측 제공
- 종류
- Platt Scaling
- Isotonic Regression
- Beta Calibration
- SplineCalib
- 과정
- 분류기가 예측한 확률과 실제 확률에 대해 그래프를 그려보자.
- 왼쪽 그래프의 x(predicted)를 확인해보면 0.2~0.8 사이의 값에서 분류기의 예측 확률이 잘 조정되어 있지 않음.
- 오른쪽 히스토그램을 살펴보면 대부분의 예측 확률값들은 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을 사용해 신뢰성을 확인해야함.
내용출처
'Kaggle' 카테고리의 다른 글
[Kaggle] Playground Series Season 3, Episode 2 리뷰 (0) | 2023.01.17 |
---|---|
kaggle competition notebook 만들기 (0) | 2022.08.12 |
캐글 구글 코랩에서 사용하기 (0) | 2022.07.11 |
[Kaggle] 캐글 자동완성 기능 사용 방법 (0) | 2022.05.22 |
[캐글 번역 | Intro to Machine Learning] 4. Model Validation (0) | 2022.05.18 |