accuray score 산출시 threshold 설정

안녕하세요 pytorch korea 여러분!
ml 모델에 대한 평가시 label 데이터가 불균형한 수를 가진 데이터가 있다고 가정해보겠습니다. 이럴 때 모델 accuracy의 threshold값을 minority class의 label frequency로 설정하는 것이 일반적이라고 하는데 그 이유가 궁금합니다

1개의 좋아요
  • 아래 답변은 OpenAI의 ChatGPT로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요! label 데이터가 불균형한 문제는 실제 많은 경우에 발생하며, 이를 해결하고자 여러 방법들이 제안되어 왔습니다. 이 중에서 하나는, majority class(label 데이터의 수가 많은 클래스)를 무시하는 문제를 완화하는 threshold를 적절히 조정하는 것입니다.

Accuracy는 전체 샘플에서 올바르게 예측한 샘플의 비율을 나타내므로, majority class의 label 정보만으로도 높은 accuracy 값을 얻을 수 있습니다. 이러한 문제를 해결하기 위해서는, minority class(label 데이터의 수가 적은 클래스)의 예측 성능이 높아지도록 모델을 학습하는 것이 중요합니다. 따라서, minority class의 예측 성능이나 recall 값을 높이기 위해서는 threshold 값을 해당 클래스의 label frequency와 비교하여 설정할 수 있습니다.

예를 들어, minority class의 label frequency가 10% 정도인 경우, threshold 값을 매우 높게 설정하게 되면 이 클래스를 예측하게 되는 경우가 매우 적어져, 모델의 성능이 개선될 수 있습니다. 반대로, threshold 값을 낮게 설정하면 이 클래스의 예측률이 높아지게 되어 recall 값이 개선될 수 있습니다.

하지만, threshold 값을 낮게 설정하게 되면 false positive rate이 높아지게 되어, majority class의 예측률이 낮아지는 문제가 발생하기 때문에, 실제 문제 상황에 맞춰서 적절한 threshold값을 설정하는 것이 중요합니다.

이와 관련된 더 자세한 내용은 다음의 논문을 참고해볼 수 있습니다.