본문 바로가기
TIL - 외/빅데이터

[빅데이터] 분류 모형 결과 평가 1. 혼동 행렬

by chaemj97 2023. 7. 7.
728x90

분류 모형의 결과를 평가하기 위해서 혼동 행렬을 이용한 평가지표와 ROC 곡선의 AUC를 많이 사용한다.

 

혼동 행렬 (Confusion Martix; 정오 행렬)

  • 분석 모델에서 구한 분류의 예측 범주와 데이터의 실제 분류 범주를 교차 표(Cross Table) 형태로 정리한 행렬
  예측 범주 값 (Predicted Condition)
Predicted Positive Predicted Negative
실제 범주 값
(Actual Condition)
Actual Positive True Positive (TP) False Negative (FN)
Actual Negative False Positive (FP) True Negative (TN)
  • TP : 실제값이 P이고 예측값도 P (참 긍정) -> 암이라고 예측한 환자가 암인 경우
  • TN : 실제값이 N이고 예측값도 N (참 부정) -> 정상이라고 예측한 환자가 정상인 경우
  • FP : 실제값이 N이고 예측값이 P (거짓 긍정) -> 암이라고 예측한 환자가 정상인 경우
  • FN : 실제값이 P이고 예측값이 N (거짓 부정) -> 정상이라고 예측한 환자가 암인 경우
from sklearn.metrics import confusion_matrix
print(confusion_matrix(정답, 예측))

# 결과 예시
'''
[[87 23]
 [12 57]]
'''

 

혼동 행렬을 통한 분류 모형의 평가 지표 

1.  정확도 (Accuracy)

  • 실제 분류 범주를 정확하게 예측한 비율
  • 전체 예측에서 참 긍정과 참 부정이 차지하는 비율
    • (TP + TN) / (TP + TN + FP + FN)

2. 재현율 (Recall) = 민감도 (Sensitivity)

  • 실제로 '긍정'인 범주 중에서 '긍정'으로 올바르게 예측한 비율
    • TP / (TP + FN)

3. 특이도 (Specificity)

  • 실제로 '부정'인 범주 중에서 '부정'으로 올바르게 예측한 비율
    • TN / (TN + FP)

4. 정밀도 (Precision)

  • '긍정'으로 예측한 비율 중에서 실제로 '긍정'인 비율
    • TP / (TP + FP)
  • '예'라고 예측했을 때의 정답률

5. F1 점수 (F1-Score)

  • 정밀도와 민감도(재현율)를 하나로 합한 성능평가 지표
    • 2* (정밀도 * 재현율) / (정밀도 + 재현율)
  • 0~1사이의 범위를 가짐
  • 정밀도와 민감도 양쪽이 모두 클 때 큰 값을 가짐
    • 좋은 예측 모델은 정밀도와 재현율이 동시에 좋아야 한다. 즉 F1 스코어 값이 좋을 수록 좋은 예측 모델이다.
from sklearn.metrics import classification_report

print(classification_report(정답, 예측))

# 결과 예시
'''
              precision    recall  f1-score   support

           0       0.88      0.79      0.83       110
           1       0.71      0.83      0.77        69

    accuracy                           0.80       179
   macro avg       0.80      0.81      0.80       179
weighted avg       0.81      0.80      0.81       179
'''

 

728x90
반응형

댓글