도구스학업·수학

혼동행렬·정밀도·재현율 계산기

TP·FP·FN·TN 네 칸을 넣으면 정확도·정밀도·재현율·특이도·F1·MCC를 한 임계값에서 계산합니다. 클래스가 불균형할 때 정확도만 보면 안 되는 이유를 함께 보여줍니다.

혼동행렬 — 행은 실제값, 열은 예측값입니다

대각선(TP·TN)이 맞춘 예측이고, 나머지(FP·FN)가 틀린 예측입니다.

정확도 (accuracy)

85%

전체 100명 중 85명을 맞췄습니다

정밀도 (precision) = TP/(TP+FP)0.8333
재현율 (recall) = TP/(TP+FN)0.9091
특이도 (specificity) = TN/(TN+FP)0.7778
F1 스코어0.8696
MCC (매튜스 상관계수)0.6975
계산 근거정확도 = (50+35) / 100 = 0.85정밀도 = 50 / (50+10) = 0.8333재현율 = 50 / (50+5) = 0.9091MCC = (TP·TN−FP·FN) / √((TP+FP)(TP+FN)(TN+FP)(TN+FN)) = 0.6975
정확도만 보면 안 되는 이유가 이 계산기의 출발점입니다. 양성이 1%뿐인 자료에서 무조건 「음성」이라고만 찍어도 정확도는 99%가 나옵니다. 클래스가 불균형할 때는 정밀도·재현율·MCC를 함께 봐야 분류기가 실제로 무엇을 잘하고 못하는지 드러납니다.
정밀도와 재현율은 서로 맞바꿔집니다. 스팸 필터를 예로 들면 정밀도가 낮으면 정상 메일을 스팸함으로 보내고(헛짚음), 재현율이 낮으면 스팸을 못 걸러냅니다(놓침). 무엇이 더 비싼 실수인지에 따라 어느 쪽을 우선할지가 상황마다 달라 추정됩니다.
이미 임계값 하나를 고른 뒤의 성능표만 보여줍니다. 임계값 자체를 바꿔가며 곡선 전체를 보려면 edu/roc-auc를 함께 쓰시기 바랍니다.

계산 방법

  1. 1실제 양성·음성과 예측 양성·음성이 맞아떨어진 TP·FP·FN·TN 네 칸의 개수를 넣습니다.
  2. 2정확도·정밀도·재현율·특이도·F1·MCC가 바로 계산됩니다.
  3. 3계산 근거(식에 실제 숫자를 넣은 과정)를 확인합니다.
  4. 4정확도는 높은데 다른 지표가 낮다면 클래스 불균형을 의심해 봅니다.

자주 묻는 질문

이진 분류기의 예측을 실제값과 대조해 TP(진짜 양성)·FP(가짜 양성)·FN(가짜 음성)·TN(진짜 음성) 네 칸으로 나눈 표입니다. 정확도 하나만으로는 안 보이는 오류의 종류(놓친 것 대 헛짚은 것)를 구분해서 보여줍니다.

양성이 1%뿐인 자료에서 무조건 「음성」이라고만 찍어도 정확도는 99%가 나옵니다. 클래스가 불균형하면 정확도는 높아도 정밀도·재현율·MCC는 형편없을 수 있어, 이 지표들을 함께 봐야 합니다.

정밀도는 「양성이라고 한 것 중 진짜 비율」(TP/(TP+FP))이고, 재현율은 「실제 양성 중 잡아낸 비율」(TP/(TP+FN))입니다. 스팸 필터는 정밀도가 낮으면 정상 메일을 스팸함에 보내고, 재현율이 낮으면 스팸을 놓칩니다 — 무엇이 더 비싼 실수인지에 따라 어느 쪽을 우선할지가 달라집니다.

매튜스 상관계수(MCC)는 TP·FP·FN·TN 네 칸을 대칭적으로 모두 써서 −1(완전 반대)부터 +1(완벽) 사이 값을 냅니다. F1은 정밀도·재현율의 조화평균이라 양성 클래스에만 초점을 맞추는 데 반해, MCC는 음성 클래스의 성능(특이도)도 함께 반영해 클래스가 심하게 불균형할 때 더 신뢰할 수 있다고 알려져 있습니다.

분모가 0이 되는 경우입니다. 예측 양성이 하나도 없으면(TP+FP=0) 정밀도가, 실제 양성이 하나도 없으면(TP+FN=0) 재현율이 정의되지 않습니다. 이 계산기는 억지로 0을 넣지 않고 정의되지 않았다고 그대로 보여줍니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 정밀도·재현율·F1·MCC 정의는 scikit-learn의 precision_score·recall_score·f1_score·matthews_corrcoef와 대조해 검증했습니다.
  • MCC는 분모의 네 항(TP+FP, TP+FN, TN+FP, TN+FN) 중 하나라도 0이면 scikit-learn의 관례를 따라 0으로 계산합니다.
  • 이 계산기는 이미 임계값 하나를 고른 뒤의 성능표만 보여줍니다. 임계값 자체를 바꿔가며 곡선 전체를 보려면 roc-auc를 함께 쓰시기 바랍니다.
  • 입력한 값은 브라우저 안에서만 계산되며 서버로 전송되지 않습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.