threshold는 어떻게 정해야 할까? 개인적인 간단한 생각

2019. 5. 4. 23:52관심있는 주제/분석 고려 사항

 

우리가 어떤 모델링을 하고 나오는 값은 결국 확률 값으로 나오게 된다. 

보통은 argmax 나 max f1  , 대충 0.5 같은 기준을 통해서 예측 타깃 값을 구한 다음

Confusion Matrix를 구해서 Accuracy 도 보고 Recall , Precision 같은 것을 확인해서 모델을 평가하게 된다.

 

그러면 이러한 기준이 되는 threshold(=cut off)는 어떻게 정해야 할까?

 

  • 최근 겪고 있는 문제는 데이터가 imbalance 할 때 모델의 확률 값을 봤을 때 0의 경우에는 확실히 0이지만 1인 경우에는 0.01 ~ 0.001 이러한 부근에 있다.
    • 보통 이러한 cut off 문제를 완화하기 위해 추천하는 방법은 undersampling, oversampling, sensitive cost function(f1,misclassification) , change model(gbm이 좋다고 한다) , add new feature , cross validation ,으로 애초에 cut off를 높게 잡을 수 있게 모델 성능을 높이는 방법이 있다.
    • 만약 별 짓 다해도 cut off가 낮다면, 이럴 때 우리는 cut off를 0.005 이런 식으로 줘도 되는 걸까?
      • 과연 이것이 납득이 되게 할 수 있을까?

이렇게 데이터의 불균형 때문이기라기보다 모델 자체의 성능이 아쉬워서 그런 것일 수도 있지만, 

만약 고정된 모델 안에서 해야 할 때 이런 것들에 대해서 어떻게 하면 상대방을 잘 설득할지가 참 애매한 것 같다.

 

그래서 결국 결론은 이렇게 나왔을 때는 타당성을 잘 밝히도록 해야 한다.

 

왜 이런 불균형이 발생하게 되고, 왜 이렇게 밖에 나올 수 없는지? 

 

나는 아직 실력이 부족해서 잘 모르겠다...

결국 말을 잘 해서 상대방을 납득시켜야 하는 방법 뿐이라면.... 책을 읽자!

728x90