Post

(ML)Confusion Matrix 이해하기

Confusion Matrix란,

혼동행렬이라 하며, test data에 대한 머신러닝 모델의 수행 결과를 요약한 것입니다.
즉, 해당 모델이 몇 개의 데이터를 Positive로, 몇 개의 데이터를 Negative로 예측했는지와 그 중 각각 몇 개의 데이터가 실제 Positive 혹은 Negative값을 지니는지 나타낸 것입니다.

Confusion Matrix는 다음과 같이 나타낼 수 있습니다. 각 값을 이제부터 알아보겠습니다.

Confusion Matrix

Predict
PositiveNegative
ActualPositiveTPFN
NegativeFPTN

Actual은 실제값, Predict는 예측 결과값을 나타냅니다.
익숙한 ‘바이러스 감염 진단 결과: 양성(Positive)/음성(Negative)’으로 예를 들어보겠습니다.

  • Actual Positive: 실제로 바이러스에 감염됨
  • Actual Negative: 실제로 감염되지 않음
  • Prediction Positive: 감염되었다고 예측함
  • Prediction Negative: 감염되지 않았다고 예측함

이후 값에 맞춰 위의 표를 챙겨보면 Confusion Matrix를 다음과 같이 이해할 수 있습니다.

Predict
PositiveNegative
ActualPositiveTPFN
NegativeFPTN

TP/TN/FP/FN 구분

  • TP(True Positive): 감염자를 감염자로 예측함
  • TN(True Negative): 비감염자를 비감염자로 예측함
  • FP(False Positive): 비감염자를 감염자로 예측함
  • FN(False Negative): 감염자를 비감염자로 예측함

이때, T/F는 정답/오답으로, P/N은 모델 예측값의 P/N여부로 생각하면 쉽게 이해할 수 있습니다.

분류 모델 평가 지표

위의 값들로 Classifier 모델 평가 지표인 Accuracy, Precision, Recall, F1-Score를 구할 수 있습니다.

Accuracy

Accuracy(정확도)는 모델의 수행능력을 평가할 때 사용됩니다. 모든 인자 중 정답 인자의 비율을 나타냅니다.

\[\begin{aligned} Accuracy =\frac{TP+TN}{TP+TN+FP+FN} \end{aligned}\]

Precision

Precision(정밀도)은 model이 Positive(양성)으로 예측한 값들의 정확도를 나타냅니다. 모델이 Positive로 예측한 모든 값들 중 정답 비율을 나타냅니다.

$ \begin{aligned} Precision = \frac{TP}{TP+FP} \end{aligned} $

Recall

Recall(재현율)은 모델이 실제 Positive 클래스를 얼마나 잘 잡아내는지 나타내는 지표입니다. 분류 모델의 효과성을 평가하는 데 사용됩니다. 실제값이 positive인 경우 중 모델이 Positive로 판정한 비율을 나타냅니다.

$ \begin{aligned} Recall = \frac{TP}{TP+FN} \end{aligned} $

F1-Score

F1-Score은 분류 모델의 전반적인 수행능력을 평가하기 위해 사용됩니다. Precision과 Recall의 조화평균(harmonic mean)으로 이루어져있습니다.

F1-score는 $0 ~ 1$ 사이 값이며 1에 가까울 수록 분류 성능이 뛰어납니다.

$ \begin{aligned} F1-Score = 2\times \frac{Precision\times Recall}{Precision+Recall} \end{aligned} $

Precision과 Recall은 trade-off 관계이기 때문에, Precision이 올라가면 Recall이 낮아지고, Recall이 높아지면 Precision이 낮아집니다. Decision threshold를 통해 trade-off 관계를 조절할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.