[Data Analysis] 3. Confusion Matrix

4 분 소요

Chapter 3. 분류 모형 성능 평가

💡 Data business
강필성 교수님의 강의를 보고 정리하였습니다.

학습 데이터에 대해서 100% 정확한 모형을 만들면 좋은 것인가?

1

Training data에 대해서 빨간색 경계면은 완벽하게 분류하고 있지만 파란색 경계면은 다소 오분류된 것을 볼 수 있음 → 빨간 경계면이 파란 경계면 보다 좋은가?

NO!

2

모델이 학습 데이터에 존재하는 노이즈(컨트롤 불가능한 변동성)까지 외우게 되어 새로운 데이터에 적용할 경우 예측 성능이 저하되는 과적합(Overfitting) 발생 → Training data, Validation data, Test data에 존재하는 노이즈가 다르기 때문 !

data를 나눠서 사용하는 이유

분류, 회귀문제를 풀 수 있는 다양한 알고리즘이 존재하고 어떤 알고리즘은 최적의 하이퍼파라미터 설정이 필요함 → validation set 사용

주어진 문제를 해결하기 위한 최적의 방법론을 선택하기 위해 개별 모델을 동등한 조건에서 평가할 필요가 있음 → test set 사용

  • 검증 데이터 : 다양한 파라미터 조합 중 최적의 파라미터를 찾는 데 주로 사용
  • 테스트 데이터 : 여러 기계학습 알고리즘 중 최적의 알고리즘을 찾는데 주로 사용

정오 행렬 기반 지표

정오 행렬 : Confusion Matrix

3

↳ 예시 : 체지방률을 사용한 성별 분류

실제 범주와 예측된 변주를 이용하여 생성한 C by C 행렬을 생성 (위 결과에 대한 정오 행렬은 다음과 같이 생성됨)

정오 행렬 일반화

이범주 분류 문제에서 정오행렬의 Positive Class(1범주)는 분석가각 더욱 관심을 두는 범주로 정의하는 것이 일반적(긍정적인 범주가 반드시 1범주가 되는 것은 아님)

4

예시 : 제조 공정 데이터 분석에서의 불량 제품, 의료 분야에서의 특정 질병 확진, 마케팅 캠페인에 대한 반응 고객 등

범주에 대한 중요도의 차이가 없을 경우 임의의 한 범주를 Positive Class로 설정(앞선 예시의 성별 분류, 이미지 기반의 개/고양이 분류 등)

  • 민감도(Sensitivity) 또는 True Positive Rate(TPR) → 실제 Posive Class 객체들 중에서 모델에 의해 Positive Class로 정확히 예측된 비율

    \[TPR = \frac{n_{11}}{n_{11}+n_{10}}=\frac{4}{5}=0.80\]
  • 특이도(Specificity) 또는 True Negative Rate(TNR) → 실제 Negative Class 객체들 중에서 모델에 의해 Negative Class로 정확히 예측된 비율

    \[TNR = \frac{n_{00}}{n_{01}+n_{00}}=\frac{3}{5}=0.60\]
  • 누락(Miss) 또는 False Negative Rate → 실제 Positive Class 객체들 중에서 모델에 의해 Negative Class로 잘못 예측된 비율

    \[FNR = \frac{n_{10}}{n_{11}+n_{10}}=\frac{1}{5}=0.20\]
  • 오경보(False Alarm) 또는 False Positive Rate → 실제 Negative Class 객체들 중에서 모델에 의해 Positive Class로 잘못 예측된 비율

    \[FPR = \frac{n_{01}}{n_{01}+n_{00}} = 2/5 = 0.40\]
  • 정분류율(Accuracy)

    \[Accracy = \frac{n_{11}+n_{00}}{n_{11}+n_{10}+n_{01}+n_{00}} = 7/10 = 0.70\]
  • 오분류율(Misclassification Error)

    \[Misclassification Error = \frac{(n_{10}+n_{01})}{(n_{11}+n_{10}+n_{01}+n_{00})} = 3/10 = 0.30\]

정분류율이 높으면 항상 좋은 모형인가?

예시 : 제조업에서의 불량 제품 탐지 모형 (총 1000개의 제품, 불량률 1%, 분석가 이서윤은 99%의 정확도의 모형을 찾아냄)

5

이럴 경우 불량을 하나도 잡아내지 못하는 모형

정분류율의 단점을 고려한 성능 평가 지표

4

  • 균형 정확도 (Balanced Correction Rate, BCR)

    \[BCR=\sqrt{\frac{n_{11}}{n_{11}+n_{10}}\times \frac{n_{00}}{n_{01}+n_{00}}}=\sqrt{0.8 \times 0.6}=0.69\]
  • 재현율(Recall) → 실제 Positive Class 객체들 중에서 모델에 의해 Positive Class로 정확히 예측된 비율

    \[Recall = \frac{n_{11}}{n_{11}+n_{10}}=\frac{4}{5}=0.80\]
  • 정밀도(Precision) → 모델이 Positive Class로 예측한 객체들 중에서 실제 Positive Class인 비율

    \[Precision = \frac{n_{11}}{n_{11}+n_{01}}=\frac{4}{6}=0.67\]
  • F1-지표(F1-Measure) : 재현율과 정밀도의 조화 평균

    \[F1-Measure=\frac{2\times Recall \times Precision}{Recall + Precision}=\frac{2\times0.80\times0.67}{0.80+0.67}=0.73\]

다시 돌아가서 정보 불균형(Class Imbalance)가 존재했던 모델의 BCR, Recall, Precision, F1을 살펴보면

5

정분류율은 99%이지만, BCR, Recall, Precision, F1은 모두 0인 것을 볼 수 있음 → 쓸모없는 모델 !

3개 이상의 범주를 분류하는 경우

6

  • Accuracy

    1 1

  • BCR

    2 1

  • Macro F1

    3 1

상황별 대표 분류 평가 지표 선택 가이드라인

7

범주 불균형의 기준 10:90 or 20:80

ROC 곡선

분류 모형의 성능 평가 : AUROC

정오행렬의 특징 : 분류 기준값이 반드시 필요

일반적인 분류 알고리즘은 Positive Class에 속할 확률(또는 우도)값을 먼저 계산한 뒤 분류 기준값 cut-off와의 비교를 통해 특정 범주에 할당

8

분류 기준값(cut-off)에 따른 정오행렬의 변화

9

동일한 확률값 하에서도 cut-off를 어떻게 설정하는가에 따라서 분류 성능이 크게 좌우되는 상황이 발생 → 분류 알고리즘간의 정확한 비교를 위해서는 cut-off에 독립적인 측정 지표가 필요

Area Under Receiver Operating Characteristic Curve (AUROC or AUC)

예시 : 총 100개의 제품의 불량을 판정하는 문제 (불량 비율 0.2)

분류 알고리즘에 의해 추정된 불량확률($P(NG)$)과 실제 범주 레이블(불량 = 1)

11

특정 알고리즘이 산출한 동일한 확률값들에 의해서 cut-off값이 달라져 생긴 변화 (알고리즘이 내어준 확률값은 변하지 않았음) → cut-off에 의해 지표들이 달라지기 때문에 cut-off의 영향을 받지 않고 알고리즘의 내재적인 성능을 평가하는 지표 사용

ROC Curve 생성 절차

  1. 모든 개체를 P(interesting class)를 기준으로 내림차순 정렬
  2. 가능한 모든 Cut-off 경우에 대해 True Positive Rate와 False Positive Rate 계산
  3. X축이 Flase Positive Rate, Y축이 True Positive Rate가 되는 2차원 그래프

12

13

ROC Curve와 Cut-off와의 관계

14

좋은 모형을 판단하기 위해 ROC Curve의 면적을 구하는 것이 Area Under ROC Cureve (AUROC)

AUROC

15

  • 이상적인 분류기는 1의 값을 갖고, 무작위 분류기는 0.5의 값을 가짐
  • Cut-off에 독립적인 알고리즘 성능 평가 지표로 사용될 수 있음

분류 모형의 성능 평가 : 오분류 비용

비대칭 오분류 비용, Asymmetric misclassification costs

많은 비즈니스 문제에서는 한 범주를 정확하게 판별하는 것이다른 범주를 정확하게 판별하는 것보다 중요하게 취급 (질병 진단, 세금사기, 신용카드 사기, 마케팅 프로모션 응답 예측 등)

이러한 경우에서는 전체 집합에 대한 오분류가 증가하더라도 주요 범주에 대한 정확도를 높이는 것이 효과적

  • 특정 범주에 대한 오분류 비용이 다른 범주보다 큰 경우
  • 특정 범주에 대한 정분류 효과가 다른 범주보다 큰 경우

예시 : 공정 데이터 기반의 제품 불량 탐지 모형 (총 100개의 제품, 990개 정상, 10개 불량)

16

  • 모든 제품 정상 판별 모델 : 정분류율 99%, 오분류율 1%, 균형 정확도 0, F1-지표 0
  • 이서윤의 모델 : 정분류율 98.8%, 오분류율 1.2%, 균형 정확도 0.89, F1-지표 0.57 → 이 모델을 사용할 경우 공정이 산출하는 경제적 가치는 얼마인가?

    • 누락(miss) 비용 : 불량 제품을 정상으로 잘못 판별하여 제품이 출시될 경우 제품 교환 및 고객 클레임 응대 비용 등

    • 오경보(false alarm) 비용 : 정상 제품을 불량으로 잘못 판별하여 해당 제품을 판매하지 못함으로써 발생하는 손실

비대칭 오분류 비용, Asymmetric misclassification costs

  • 모든 제품 정상 판별 모델 \(\\ 10\times (-100,000)+990\times(20,000)=18,800,000\)

    17

  • 이서윤의 Machine Learning 모델 \(\\ 2\times (-100,000)+10\times(-10,000)+980\times(20,000)=19,300,000\)

    18

    모든 제품 정상 판별 모델 대비 +500,000

댓글남기기