지난 글에서 분류 모델의 평가 지표와 ROC 곡선(Receiver Operating Characteristic Curve)에 대해 정리해 보았습니다.
이번 글에서는 P-R 곡선(Precision-Recall Curve)에 대해 알아보고, 각 곡선을 언제 이용하는 게 좋은지 비교하며 살펴보겠습니다.
이전 글은 아래 북마크를 통해 확인하실 수 있습니다.
P-R 곡선이란?
P-R 곡선은 정밀도 precision와 재현율 recall의 관계를 나타내는 그래프입니다.
일반적으로 랭킹 문제에서는 성능을 평가하기 위해 정해진 임계값이 없습니다.
대신 Top K로 반환된 결과의 정밀도 값과 재현율 값을 종합적으로 고려하여 랭킹 모델의 성능을 평가할 수 있습니다.
이를 위한 가장 좋은 방법이 바로 P-R 곡선을 그리는 것이죠.
예를 들어 위와 같은 P-R 곡선에서, 재현율이 0에 가까울 때 모델 A의 정밀도는 0.9이고 모델 B의 정밀도는 1입니다.
즉 모델 B에서 Top K의 샘플들은 모두 실제 양성(Positive) 샘플이고, 모델 A는 몇 개 샘플을 잘못 예측할 가능성이 있다는 뜻이겠죠.
그리고 재현율이 증가함에 따라 정밀도는 전체적으로 감소합니다. 그러나 재현율이 1일 때 모델 A의 정밀도는 모델 B의 정밀도보다 큽니다.
이는 어떤 점 위에 대응하는 정밀도와 재현율만 고려해서는 모델의 성능을 완벽하게 측정할 수 없다는 것을 뜻합니다.
그러니까 P-R 곡선의 전체적인 표현을 확인해야 모델에 대한 전면적인 평가가 가능한 것입니다.
어떤 차이가 있을까?
분명히 지난 글에서 ROC 곡선이 왼쪽 위 모서리에 가까울수록 분류기 성능이 좋다고 했습니다.
그렇다면 P-R 곡선은 확인할 필요가 없는 걸까요? 언제, 어떤 그래프를 보고 모델의 성능을 평가해야 할까요?
각 개념을 다시 살펴보면서 특징과 차이를 비교해보겠습니다.
우선 정답 label을 `Y`, 예측한 결과를 `\hat{Y}`라고 할 때, 각 지표는 다음과 같이 나타낼 수 있습니다.
① `Precision = P(Y=1|\hat{Y}=1)`
② `Recall = P(\hat{Y}=1|Y=1)`
③ `FPR = P(\hat{Y}=1|Y=0)`
이때 ROC 곡선은 ②재현율과 ③FPR(Fall-out)의 관계를, P-R 곡선은 ①정밀도와 ②재현율의 관계를 나타낸다고 했죠.
즉 ROC 곡선은 실제 라벨 값에 따른 예측 결과의 관계를 나타내고, P-R 곡선의 경우 하나는 라벨 값에 따른 예측 결과, 또 하나는 예측 결과에 따른 라벨 값의 관계를 보여줍니다.
또한 위 그림과 같이 각 곡선이 그려지는 과정을 통해 차이를 비교해볼 수도 있습니다.
ROC 곡선에서 포인트 사이의 거리는 일정합니다. 즉 총 샘플 수에만 의존하는 것이죠.
반면 P-R 곡선에서 점 사이의 거리는 이동하는 축의 방향에 따라 다릅니다. 수평의 경우(Recall), ROC 곡선과 마찬가지로 일정합니다. 그러나 수직 방향(Precision)의 경우 얼마나 많은 음성 샘플을 분류했는지에 따라 달라집니다. 즉 False Positive가 많을수록 step이 더 작아집니다.
언제, 어떤 곡선을 봐야 할까?
위와 같은 차이는 어떤 문제와 상황에서 각 곡선을 사용해야 하는지 중요한 힌트를 줍니다.
두 곡선의 가장 중요한 차이는 바로 샘플이 얼마나 있는지, 정확히 말하면 음성(Negative) 샘플의 비율에 있습니다.
아래 그림 중 (c), (d)는 각각 (a)와 (b)로부터 음성 샘플을 10배로 증가시킨 경우 두 모델의 성능을 나타냅니다.
ROC 곡선의 경우 음성 샘플의 개수와 관계 없이 동일한 성능을 나타내는 반면, P-R 곡선은 큰 차이를 보입니다.
음성 샘플이 양성 샘플보다 약 10배나 많기 때문에 정상적으로 양성 샘플을 분류해낼 수 없으므로(False Positive가 커짐), 높은 정밀도 precision(`\frac{TP}{TP+FP}`)을 얻을 수가 없는 것이죠.
정리해보면, ROC 곡선의 경우 데이터셋과 별개로 일반적인 상황에서의 모델 성능을 낙관적으로 평가합니다.
반면 P-R 곡선은 클래스 간 불균형이 심할 때, 그에 따른 모델의 성능을 반영합니다.
그러나 똑같이 양성 샘플보다 음성 샘플의 개수가 훨씬 많은 경우라고 해도, 해결하고자 하는 문제의 성격에 따라 어떤 곡선을 사용할 것인지 결정하는 것이 필요합니다.
예를 들어 랭킹, 추천, 광고 등 분야에서는 데이터셋과 별개로 안정적인 모델의 성능을 확인하기 위해 ROC 곡선을 더 자주 이용합니다.
그러나 이상 탐지 분야에서는 P-R 곡선을 이용할 때 더 정확한 평가가 가능하겠죠.
아래 자료를 참고했습니다.
- 책 『데이터 과학자와 데이터 엔지니어를 위한 인터뷰 문답집』
- PR vs ROC Curves - Which to Use?
- ROC 및 Precision-Recall 곡선
'공부하며 성장하기 > 인공지능 AI' 카테고리의 다른 글
CNN Parameter Sharing (1) | 2022.02.10 |
---|---|
모델 검증 방법 (0) | 2022.02.07 |
[한 줄 정리] 분류 모델 평가 지표 (0) | 2022.01.23 |
[한 줄 정리] SMOTE (0) | 2022.01.17 |
피처 정규화(Feature Normalization)가 반드시 필요한 경우 (0) | 2022.01.14 |