ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Confusion Matrix 와 Precision/Recall
    AI 2026. 1. 20. 05:03

     

    Confusion Matrix

    가장 기본이 되는 이진 분류(Positive/Negative)에서의 혼동 행렬은 다음과 같이 4가지 지표로 구성됩니다.

    구분 Predicted Positive (참으로 예측) Predicted예측 Negative (거짓으로 예측)
    Actual Positive (실제 참) TP (True Positive)

    맞게 맞춤
    FN (False Negative)

    틀리게 틀림 (2종 오류)
    Actual Negative (실제 거짓) FP (False Positive)

    틀리게 맞춤 (1종 오류)
    TN (True Negative)

    맞게 틀림

     

    True Positive (TP) - 모델이 양성(Positive)을 양성으로 맞혔을 때
    True Negative (TN) - 모델이 음성(Negative)을 음성으로 맞혔을 때
    False Positive (FP) - 모델이 음성(Negative)을 양성(Positive)으로 잘못 예측했을 때
    False Negative (FN) - 모델이 양성(Positive)을 음성(Negative)으로 잘못 예측했을 때

     


    $$\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}$$

    • 분자: 맞게 맞춘 것($TP$) + 맞게 틀린 것($TN$) = 전체 정답 수
    • 분모: 전체 데이터의 개수
    • Accuracy: : 모델이 예측한 결과와 실제 정답이 일치하는 비율을 의미

    예제

    병원에 내원한 환자가 암인지 아닌지 구분하는 예측모델을 만드는 경우를 생각해 봅시다. 100명의 환자에 대한 예측

    • TP(실제로 암이면서, 암으로 예측한 결과) = 1
    • TN(실제로 정상이고, 정상으로 예측한 결과) = 90
    • FN(실제로 암이지만, 정상으로 예측한 결과) = 8
    • FP(실제로 정상이지만, 암으로 예측한 결과) = 1
    $$\text{Accuracy} = \frac{1 + 90}{1 + 90 + 1 + 8} = \frac{91}{100} = 0.91$$

     

    정확도만 보면 91%로 꽤 높은 성능인 것 같지만, 의료 현장에서는 이 모델을 매우 위험한 모델로 평가합니다. 그 이유는 다음과 같습니다.

    1. 재현율(Recall)의 문제: 실제 암 환자가 총 9명($TP+FN = 1+8$)인데, 그중 단 1명만 찾아내고 8명을 놓쳤습니다. 암 진단에서는 암 환자를 정상으로 오판($FN$)하는 것이 가장 치명적이기 때문입니다.
    2. 데이터 불균형: 전체 환자 중 정상인이 압도적으로 많기 때문에, 단순히 정상인을 잘 맞히는 것만으로도 전체 정확도가 높게 나오는 '정확도의 함정'에 빠진 사례입니다.

    음성 대 양성 데이터 분포가 불균형할 경우 정확도는 모델을 평가하는데 좋은 척도가 되지 못합니다.

    이런 경우, 정확도보다는 재현율(Recall)을 확인하는 것이 훨씬 중요합니다. (이 모델의 재현율은 $1/9 \approx 11.1%$에 불과합니다.)

     

    Precision and Recall

    Precision

    모델이 Positive(양성)라고 예측한 것들 중, 실제로 정답이 Positive인 비율입니다.

    • 핵심 질문: "모델이 맞다고 한 것 중에 진짜가 얼마나 있니?"
      $$\text{Precision} = \frac{TP}{TP + FP}$$
    • 특징: 거짓 양성(FP, 가짜 뉴스/오경보)을 줄이는 것이 목표일 때 중요합니다.
    • 사례: 스팸 메일 분류. 정상 메일을 스팸으로 오판(FP)하여 중요한 메일을 못 읽게 되면 큰 문제가 되므로, 확실한 것만 스팸으로 걸러내는 정밀도가 중요합니다. 그렇다고 해서 FN을 무한히 허용하면 스팸 메일 분류기 자체가 쓸모없어지는 상황이 될 수 있어 좋지 않습니다

    모델이 "암입니다"라고 예측한 사람들 중에서 실제로 암인 사람의 비율입니다.

    $$\text{Precision} = \frac{TP}{TP + FP} = \frac{1}{1 + 1} = \frac{1}{2} = 0.5$$

    Recall(재현률)

    실제 Positive(양성)인 것들 중, 모델이 Positive라고 맞춘 비율입니다. 통계학에서는 민감도(Sensitivity)라고도 부릅니다.
    이 개념은 실제로 양성이 것들이 얼마나 모델에 의해 정확하게 탐지되었나를 보고 싶은 것입니다. 실제로 음성인 것을 양성으로 잘못 규정한 것에 대해서는 관심이 없습니다. 재현율이 높다는 것은 FN이 낮다는 것입니다. 즉 모델이 실제 양성을 분류해 내지 못한 경우가 적을 수록 재현율은 올라갑니다

    • 핵심 질문: "실제 정답들을 모델이 얼마나 놓치지 않고 찾아냈니?"
      $$\text{Recall} = \frac{TP}{TP + FN}$$
    • 특징: 거짓 음성(FN, 놓친 사례)을 줄이는 것이 목표일 때 중요합니다.
    • 사례: 암 진단, 범죄자 검거. 암 환자를 정상으로 오판(FN)하여 치료 시기를 놓치면 치명적이므로, 설령 오보가 있더라도 실제 환자를 최대한 다 찾아내는 재현율이 중요합니다.Recall을 최대화하는 방법은 간단합니다. 모든 환자를 양성으로 진단해 버리면 됩니다. 적어도 FN이 발생하게 되지는 않으니 Recall은 무조건 1이 됩니다. 그러나 이런 예측모델 또한 쓸모가 없긴 마찬가지입니다.

    실제 암 환자들 중에서 모델이 얼마나 빠뜨리지 않고 찾아냈는지의 비율입니다.

    $$\text{Recall} = \frac{TP}{TP + FN} = \frac{1}{1 + 8} = \frac{1}{9} \approx 0.111$$
     
    정확도가 91%이던 이 모델의 재현율은 11%밖에 안됩니다.
    암환자의 예측 모델에서 재현율이 11%밖에 안된다는 것은 이 모델이 실제 암환자를 거의 못가려낸다는 뜻이므로 정확도가 높아도 아주 쓸모없는 모델로 평가할 수밖에 없습니다.
    그럼 이렇게 쓸모없는 모델의 정확도가 높게 나온 이유는 무엇일까요?
    그럼 Confusion Matrix에서 봅시다. 100개의 데이터 중 대부분은 4가지 카테고리 중 TN에 몰려 있고, 이 모델은 TN을 아주 정확하게 분류했기 때문에 정확도가 높게 나온 것입니다
     

    이 모델의 성능을 요약하면 다음과 같습니다.

    지표 수치 평가
    정확도(Accuracy) 91% 매우 우수해 보임 (대부분의 정상인을 맞혔으므로)
    정밀도(Precision) 50% 보통 (절반은 오진임)
    재현율(Recall) 11.1% 매우 위험함 (환자 10명 중 9명을 놓침)

    f


    F-Score

    왜 '산술평균'이 아닌 '조화평균'인가?

    우리가 흔히 쓰는 산술평균 $\frac{A+B}{2}$ 대신 조화평균을 사용하는 이유는, 두 지표 중 하나라도 급격히 낮아질 경우 전체 점수를 확 낮춰버리기 위해서입니다.

    • 산술평균의 함정: Precision이 1.0이고 Recall이 0.01인 모델(극단적으로 보수적인 모델)이 있다면, 산술평균은 약 0.5가 되어 마치 중간은 가는 모델처럼 보입니다.
    • 조화평균의 효과: 하지만 조화평균($F_1$)을 적용하면 약 0.019가 나옵니다. 즉, "한쪽이라도 엉망이면 이 모델은 엉망이다"라고 냉정하게 평가하는 것입니다

     

    $F_1$ Score: 균형 잡힌 척도 ($\beta = 1$)

    사용자님이 적어주신 공식에서 $\beta = 1$을 대입하면 우리가 가장 많이 사용하는 $F_1$ Score 공식이 나옵니다.

    $$F_1 = (1+1^2) \cdot \frac{\text{Precision} \cdot \text{Recall}}{(1^2 \cdot \text{Precision}) + \text{Recall}} = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}$$

    이 수치는 정밀도와 재현율에 **동일한 가중치(1:1)**를 부여합니다. 데이터셋의 클래스 분포가 불균형할 때(예: 암 환자 5%, 정상인 95%), 모델이 얼마나 균형 있게 학습되었는지 판단하는 가장 대중적인 지표입니다.

     

     

    $F_\beta$ Score: 비즈니스 목적에 따른 가중치 조절

    $\beta$는 "재현율(Recall)을 정밀도(Precision)보다 얼마나 더 중요하게 생각하는가?"를 결정하는 계수입니다.

    $$F_\beta = (1+\beta^2) \cdot \frac{\text{Precision} \cdot \text{Recall}}{(\beta^2 \cdot \text{Precision}) + \text{Recall}}$$
    • $\beta > 1$ (예: $F_2$ Score): Recall에 더 무게를 둠
      • 분모에서 Precision에 $\beta^2$을 곱해주기 때문에, 재현율이 낮아질 때 전체 점수가 훨씬 더 크게 깎입니다.
      • 사례: 사용자님이 언급하신 암 진단 모델. 놓치는 환자($FN$)가 없어야 하므로 Recall이 중요하며, 이때는 $F_2$ 혹은 그 이상의 지표를 참고합니다.
    • $\beta < 1$ (예: $F_{0.5}$ Score): Precision에 더 무게를 둠
      • 정밀도가 낮아질 때(오보가 많을 때) 점수가 더 크게 깎입니다.
      • 사례: 스팸 메일 분류기. 멀쩡한 메일을 스팸으로 분류($FP$)하는 손실이 더 크므로 Precision이 중요하며, 이때는 $F_{0.5}$ 같은 지표가 적합합니다.

     


    $F_\beta$ Score 수학적 유도

    일반적인 조화평균의 형태

    두 수 $x, y$의 일반적인 조화평균($H$)은 '역수의 산술평균의 역수'입니다.

    $$H = \frac{2}{\frac{1}{x} + \frac{1}{y}} = \frac{2xy}{x+y}$$

    이 식은 정밀도($P$)와 재현율($R$)에 동일한 가중치를 준 $F_1$ Score의 형태와 정확히 일치합니다.

     

    가중 조화평균(Weighted Harmonic Mean)으로의 확장

    이제 두 지표에 서로 다른 가중치를 주고 싶다고 가정해 봅시다. 정밀도($P$)에 $w_1$만큼의 중요도를, 재현율($R$)에 $w_2$만큼의 중요도를 준다면 가중 조화평균은 다음과 같이 정의됩니다.

    $$H_{weighted} = \frac{w_1 + w_2}{\frac{w_1}{P} + \frac{w_2}{R}}$$

    여기서 $w_1$$w_2$의 상대적인 비율을 결정하는 것이 바로 $\beta$입니다. $F_\beta$ 공식은 재현율($R$)을 정밀도($P$)보다 $\beta$배 더 중요하게 여기겠다는 설정에서 출발합니다. 즉, 가중치의 비율을 다음과 같이 둡니다.

    • $R$의 가중치($w_2$) = $\beta^2$
    • $P$의 가중치($w_1$) = $1$

    참고: 가중치에 제곱($\beta^2$)을 사용하는 이유는 $F$ Score가 거리에 기반한 지표(L2 norm 등)와 수학적 계통을 같이하며, $\beta$ 자체를 "재현율을 정밀도의 몇 배로 중시할 것인가"라는 직관적인 선형 배수로 유지하기 위함입니다.

     

    공식 유도 과정

    위의 가중 조화평균 식에 $w_1 = 1$, $w_2 = \beta^2$을 대입해 보겠습니다.

    1. 가중 조화평균 식 대입:
      $$F_\beta = \frac{1 + \beta^2}{\frac{1}{P} + \frac{\beta^2}{R}}$$
    2. 분모 통분:
      $$\frac{1}{P} + \frac{\beta^2}{R} = \frac{R + \beta^2 P}{PR}$$
    3. 역수 취해서 정리:
      $$F_\beta = (1 + \beta^2) \cdot \frac{PR}{R + \beta^2 P}$$

     

     

     

    왜 '조화'평균이어야만 할까? (수학적 의미)

    산술평균은 합의 개념이지만, 조화평균은 '비율(Rate)'을 다루는 데 특화되어 있습니다. 머신러닝의 성능 지표인 정밀도와 재현율은 분모가 서로 다른 비율 데이터입니다.

    • Precision: $TP / (TP + FP)$
    • Recall: $TP / (TP + FN)$

    이처럼 기준(분모)이 서로 다른 두 비율의 평균을 구할 때, 산술평균을 쓰면 데이터의 절대적인 양을 무시하게 되는 오류가 발생합니다. 하지만 조화평균을 사용하면 두 지표가 모두 '양성($TP$)'이라는 공통의 분자를 공유하고 있다는 점을 활용하여, 두 비율이 균형을 이룰 때 비로소 높은 값을 갖게 됩니다.

     


     

    공식의 직관적인  이해

    다른 변형 없이 이 식의 분모와 분자의 관계만 봐도 왜 $\beta$가 특정 지표를 편애하게 되는지 직관적으로 알 수 있습니다.

    $$F_\beta = (1 + \beta^2) \cdot \frac{PR}{R + \beta^2 P}$$

     

    1. 분모($R + \beta^2 P$)의 '보호막' 원리

    공식에서 가장 중요한 부분은 분모인 **$R + \beta^2 P$**입니다. 여기서 $P$ 앞에는 $\beta^2$이라는 큰 계수가 붙어 있고, $R$ 앞에는 계수 $1$이 숨어 있습니다.

    $\beta > 1$ 일 때 (예: $\beta^2 = 100$) $\rightarrow$ 분모 $\approx R + 100P$

    이 상황에서 $P$$R$이 각각 떨어질 때 어떤 일이 벌어지는지 보세요.

    • $P$(정밀도)가 떨어질 때: 분모에 있는 $100P$도 같이 작아집니다. **분자($PR$)가 작아질 때 분모($100P$)도 함께 작아지면서 전체 값의 하락을 방어(상쇄)**해줍니다. 즉, 점수가 덜 깎입니다.
    • $R$(재현율)이 떨어질 때: 분모에서 $R$은 계수가 1뿐이라서 분모 전체를 줄여주는 힘이 거의 없습니다. 분자는 작아지는데 분모는 여전히 큰 상태($100P$ 때문)를 유지하므로, 전체 값($F_\beta$)이 수직 낙하합니다.

    결론: $R$이 조금만 떨어져도 분모가 방어를 못 해주기 때문에 점수가 폭락합니다. 그래서 "$\beta$가 크면 $R$을 죽어라 지켜야 한다(Recall 중시)"는 결과가 나옵니다.

     

     

    2. 숫자로 보는 직관적 비교 ($\beta = 2, \beta^2 = 4$ 가정)

    공식에 직접 대입해 보겠습니다. $F_2 = 5 \cdot \frac{PR}{R + 4P}$ 입니다.

    상황 P 값 R 값 계산식 결과값
    기준 (완벽) 1.0 1.0 $5 \cdot \frac{1}{1 + 4}$ 1.0
    $P$가 반토막 (0.5) 0.5 1.0 $5 \cdot \frac{0.5}{1 + 4(0.5)} = \frac{2.5}{3}$ 0.83 (조금 감소)
    $R$이 반토막 (0.5) 1.0 0.5 $5 \cdot \frac{0.5}{0.5 + 4(1)} = \frac{2.5}{4.5}$ 0.55 (폭락)

    똑같이 0.5로 떨어졌는데, $R$이 떨어졌을 때 점수가 훨씬 더 처참하게 깎이는 것을 볼 수 있습니다. 분모의 $4P$$R$이 떨어지는 상황을 전혀 도와주지 않기 때문입니다.

     

    3. $\beta < 1$ 일 때 (예: $\beta^2 = 0.01$) $\rightarrow$ 분모 $\approx R + 0.01P$

    이번에는 반대입니다. $P$가 분모에서 계수 $0.01$을 달고 아주 약한 존재가 됩니다.

    • $P$(정밀도)가 떨어질 때: 분모의 $0.01P$는 너무 작아서 분모를 줄여주는 데 아무런 도움이 안 됩니다. 분자($PR$)만 작아지니 점수가 폭락합니다.
    • $R$(재현율)이 떨어질 때: 분모의 $R$이 작아지면 분모 전체 값도 같이 작아지면서 하락폭을 상쇄해줍니다.

    결론: $\beta$가 1보다 작으면 $P$가 떨어지는 것에 대해 공식이 훨씬 더 민감하게 반응(벌점 부여)합니다. 그래서 정밀도($P$) 중시가 됩니다.

     

     

    4. $\beta = 1$ 일 때 $\rightarrow$ 분모 $= R + P$

    분모에서 $P$$R$의 계수가 1로 동일합니다.

    $$F_1 = 2 \cdot \frac{PR}{R + P}$$

    이때는 $P$가 떨어지든 $R$이 떨어지든 분모가 도와주는 힘이 똑같습니다. 따라서 어느 한쪽에 치우치지 않고 둘의 균형을 똑같은 무게로 평가하게 됩니다.

     

    최종 요약

    이 공식은 "누구에게 더 무거운 벌점(계수)을 주어 점수를 방어하지 못하게 만들 것인가"를 설계한 식입니다.

    • $\beta^2$$P$ 앞에 붙어 있다는 것은, 역설적으로 $P$가 떨어질 때 분모를 같이 줄여서 $P$를 보호하겠다는 뜻입니다.
    • 상대적으로 보호받지 못하는 $R$은 조금만 낮아져도 전체 점수가 박살나게 되므로, 모델은 점수를 높이기 위해 $R$을 올리는 데 집중하게 됩니다.
Designed by Tistory.