지난 포스팅에서는 ROC 곡선과 이를 통한 요약 통계인 AUC와 EER에 대해서 알아보았습니다. 하지만, 어떤 문제에서는 "음성(negative)"의 개념이 명확하지 않을때가 많습니다. 예를 들어서 생각해보겠습니다. 검출기가 이미지 패치를 하나하나 분류한다고 가정하겠습니다. 그러면 검사한 패치 수가 알고리즘 설정값에 달려있습니다. 다시 말해, "음성"의 총량이 문제의 정의가 아니라 구현 파라미터에 의해 결정되는 것이죠. 다른 예시도 생각해볼 수 있습니다. 정보 검색을 한다고 가정하겠습니다. 일반적으로 이러한 시스템에서는 검색 결과 후보 문서 집합을 먼저 뽑은 뒤 이를 관련도 순으로 랭킹합니다. 이 과정에서 임의의 컷 오프를 두어 "관련문서(양성) vs 무관련문서(음성)"을 나눌 수는 있지만 음성 집합의 크기는 "가져온 문서의 총 개수"에 따라서 달라지므로 알고리즘 파라미터의 문제이지 본래 문제의 정의가 아닙니다. 이와 같이 음성 샘플의 범위가 유동적인 상황에서는 모델 성능을 요약할 때 정밀도-재현율 곡선(Precision-Recell Curve; PR Curve)이 ROC 곡선보다 더 정확할 수 있습니다.
분류 성능을 요약할 때 거짓양성률(FPR) 대신 양성 데이터만으로 계산되는 지표인 정밀도(Precision)을 사용할 수 있습니다.
$$\mathcal{P}(\tau) = p(y = 1 \mid \hat{y} = 1, \tau) = \frac{\text{TP}_{\tau}}{\text{TP}_{\tau} + \text{FP}_{\tau}}$$
여기서 정밀도란 "검출한 항목들 가운데 실제로 양성인 비율"을 의미합니다. 이를 재현율(Recall) 또는 참양성률(TPR)과 함께 비교해볼 수 있습니다.
$$\mathcal{R}(\tau) = p(\hat{y} = 1 \mid y = 1, \tau) = \frac{\text{TP}_{\tau}}{\text{TP}_{\tau} + \text{FN}_{\tau}}$$
예측 라벨 $\hat{y} \in \{ 0, 1 \}$ 그리고 실제 라벨 $y \in \{ 0, 1 \}$이 주어지면 정밀도와 재현율의 경험적 추정치는 다음과 같습니다.
$$\begin{cases} \mathcal{P}(\tau) &= \frac{\sum_{n} y_{n}\hat{y}_{n}}{\sum_{n} \hat{y}_{n}} \\ \mathcal{R}(\tau) &= \frac{\sum_{n} y_{n}\hat{y}_{n}}{\sum_{n} y_{n}} \end{cases}$$
이제 이를 기반으로 임곗값 $\tau$를 변화시키면서 PR 곡선을 그릴 수 있습니다. (그림 5.2 (b) 참고)

이번에는 PR 곡선으로부터 요약 통계량을 추출하는 방법에 대해서 알아보겠습니다. 이 역시 ROC 곡선의 AUC 및 EER과 같이 다양한 방식으로 추출할 수 있습니다.
- 고정된 재현율에서의 정밀도: 예를 들어, 상위 $K = 10$개를 불러왔을 때의 정밀도를 Precision @ $K$라고 부릅니다. 이는 $K$개의 결과 중 실제 양성이 몇 개나 포함되어있는지 확인해보는 방식입니다.
- AUCPR (Area Under the PR Curve): ROC 곡선의 AUC와 동일하게 PR 곡선을 적분하여 전체 성능을 요약하는 것입니다. 하지만 PR 곡선은 항상 단조로 감소하지는 않습니다. 즉, 재현율 10%에서 정밀도 90% 였다가 재현율 20%에서 정밀도가 96%일 수도 있습니다.
- 보간정밀도(Interpolated Precision) 및 평균정밀도(Average Precision; AP): 특정 재현율 $r$에 대해서 $r$이상에서 달성가능한 최고 정밀도를 취합니다. 방금 예시에서 보면 “재현율 ≥ 10 %에서 가능한 최대 정밀도”는 96 %가 됩니다. 이렇게 계산한 보간 정밀도들을 재현율 축 전 구간에 대해서 평균을 계산하면 평균 정밀도가 됩니다. 이때, AP는 “보간된 PR 곡선 아래 면적”과 동일하지만, 원본 PR 곡선 면적(AUPRC) 과는 다를 수 있습니다. 일반적으로는 $\text{AP} \ge \text{AUCPR}$입니다.
- mAP(mean Average Precision): 여러 PR 곡선(예: 객체 검출에서 여러 클래스)의 AP 값을 다시 평균한 값입니다. 이는 모델 전반의 정밀도‑재현율 성능을 한 숫자로 제시할 때 널리 사용합니다.
이와 같이 PR 곡선으로 얻는 방법도 있지만 정밀도와 재현율로부터 직접적으로 결과를 얻는 방법도 있습니다. 바로 F-점수(F-score)이죠. 기본적으로 F-$\beta$ 점수는 다음과 같이 정의됩니다.
$$\frac{1}{F_{\beta}} = \frac{1}{1 + \beta^{2}}\frac{1}{\mathcal{P}} + \frac{\beta^{2}}{1 + \beta^{2}} \frac{1}{\mathcal{R}}$$
또는 동치인 형태로 다음과 같이 쓸 수도 있죠.
$$F_{\beta} = \frac{(1 + \beta^{2}) \mathcal{P} \mathcal{R}}{\beta^{2} \mathcal{P} + \mathcal{R}} = \frac{(1 + \beta^{2})\text{TP}}{(1 + \beta^{2})\text{TP} + \beta^{2} \text{FN} + \text{FP}}$$
여기서 $\beta$는 재현율에 대한 가중치로 $\beta > 1$이라면 재현율에 더 큰 가중치를 주가 $\beta < 1$이라면 정밀도에 더 큰 가중치를 주게 됩니다. 가장 흔히 사용되는 값은 바로 $\beta = 1$로 F1-점수라고 불리는 점수가 가장 많이 사용됩니다.
$$\begin{cases} &\frac{1}{F_{1}} = \frac{1}{2} \left( \frac{1}{\mathcal{P}} + \frac{1}{\mathcal{R}}\right) \\ &F_{1} = \frac{2}{\frac{1}{\mathcal{R}} + \frac{1}{\mathcal{P}}} = \frac{2\mathcal{P}\mathcal{R}}{\mathcal{P} + \mathcal{R}} \end{cases}$$
F1-점수는 결국 정밀도와 재현율 사이의 조화평균이라고 볼 수 있습니다. 가장 단순한 산술평균 $\frac{\mathcal{P} + \mathcal{R}}{2}$의 경우 한쪽이 매우 작아도 크게 감소하지 않습니다. 하지만, 조화평균은 두 지표가 모두 높아야만 점수가 높아지므로 보수적인 평가방법이죠.
이번에는 클래스 불균형이 ROC 곡선, PR 곡선, 그리고 F-점수에 어떤 영향을 주는 지 알아보도록 하겠습니다. 이를 위해 몇 가지 기호를 정의해놓도록 하죠. 일단, $P$와 $N$을 각각 양성인 샘플과 음성인 샘플의 개수라고 가정하겠습니다. 그러면 저희는 양성 비율 $\pi = \frac{P}{P + N}$을 통해서 불균형 정도 $r = \frac{P}{N} = \frac{\pi}{1 - \pi}$로 정의할 수 있습니다. 이때, 전체 샘플 수는 $n = P + N$입니다.
여기서 $r$이 바뀌더라도 ROC 곡선은 변경되지 않습니다. 왜냐하면 TPR와 FPR에 의해서 결정되지만 각각 분모가 그냥 $P$와 $N$이기 때문이죠. 따라서, 양성과 음성인 샘플을 아예 변경하더라도 모양이 변경되지 않습니다.
이번에는 PR 곡선을 보도록 하죠. 일단 정밀도는 다음과 같이 계산됩니다.
$$\text{Prec} = \frac{\text{TP}}{\text{TP} + \text{FP}} = \frac{P \cdot \text{TPR}}{P \cdot \text{TPR} + N \dots \text{FPR}} = \frac{\text{TPR}}{\text{TPR} + \frac{1}{r} \text{FPR}}$$
여기서 $\pi \rightarrow 1$이 된다면 $r \rightarrow \infty$가 됩니다. 즉, 데이터의 대부분이 양수라면 $\text{Prec} \rightarrow 1$이 되죠. 반면에 $\pi \rightarrow 0$이 된다면 $r \rightarrow 0$가 됩니다. 즉, 데이터의 대부분이 음수라면 $\text{Prec} \rightarrow 0$이 되죠. 따라서, 불균형 문제가 된다면 PR 곡선의 경우 재현율은 유지되지만 정밀도가 크게 영향을 받기 때문에 전체적으로 PR 곡선이 아래로 이동하게 될 것 입니다. 따라서 여러 이진 문제(예: 흔한 객체 vs. 드문 객체 탐지)를 평균 낼 때는 정밀도의 유병률 의존성에 주의해야 합니다.
마지막으로 F-점수도 확인해보도록 하죠.
$$\begin{align} \frac{1}{F_{\beta}} &= \frac{1}{1 + \beta^{2}}\frac{1}{\mathcal{P}} + \frac{\beta^{2}}{1 + \beta^{2}} \frac{1}{\mathcal{R}} \\ &= \frac{1}{1 + \beta^{2}} \frac{\text{TPR} + \frac{N}{P}\text{FPR}}{\text{TPR}} + \frac{\beta^{2}}{1 + \beta^{2}} \frac{1}{\text{TPR}} \\ \Rightarrow& F_{\beta} = \frac{(1 + \beta^{2})\text{TPR}}{\text{TPR} + \frac{1}{r} \text{FPR} + \beta^{2}} \end{align}$$
이때, 분모에 $\frac{1}{r}$이 존재하고 있습니다. 따라서, $r$이 작아지게 되면 F점수도 하락하게 될 것입니다. 특히 F-1점수는 정밀도·재현율 둘 다 영향을 받기 때문에 불균형 데이터에서 과대‑낙관 혹은 과소‑비관될 수 있습니다.
결론적으로, 클래스 희귀도를 고려하지 않고 PR 곡선이나 F‑점수만 비교하면 성능을 잘못 해석할 수 있습니다. 모델을 평가·보고할 때는 유병률 정보를 함께 밝히거나, 불균형 보정 기법(재표본화, 가중 손실 등)을 적용한 지표를 사용하는 것이 좋습니다.