본문 바로가기

ML & AI Theory

머신러닝 모델의 예측 평가에 대해 #2 - 오차행렬 & F1 Score

반응형

오차 행렬 (Confusion Matrix)

이진 분류에서 성능 지표로 잘 활용되는 오차행렬(Confusion Matrix)은 학습된 분류 모델이 예측을 수행하면서 얼마나 혼동하고(Confusion)있는지를 보여주는 지표입니다. 즉, 이진 분류의 예측 오류가 얼마인지와 더불어 어떠한 유형의 예측 오류가 발생하고 있는지를 함께 나타내는 지표입니다.

 

오차 행렬은 4분면 행렬에서 실제 레이블 클래스 값과 예측 레이블 클래스 값이 어떠한 유형을 가지고 매핑되는지를 나타냅니다. 4분면의 왼쪽, 오른쪽을 예측된 클래스 값 기준으로 Negative와 Positive로 분류하고, 4분면의 위, 아래를 실제 클래스 값 기준으로 Negative와 Positive로 분류하면 예측 클래스와 실제 클래스의 값 유형에 따라 결정되는 TN, TP, FN, FP로 결정이 됩니다. TN의 의미는 True Negative로 True는 예측 클래스 값과 실제 클래스 값이 같다는 의미고 뒤의 Negative는 예측값이 Negative값이라는 의미입니다. 즉, TN은 예측을 Negative값 0으로 예측했는데, 실제 값도 Negtive 값 0이라는 의미입니다. 

 

TN, TP, FN, FP기호가 의미하는 것은 앞 문자 True/False는 예측값과 실제값이 '같은가/틀린가'를 의미합니다. 뒤 문자 Negative/Positive는 예측 결과 값이 부정/긍정을 의미합니다.

 

  • TN: 예측값을 Negative값 0으로 예측했고 실제 값 역시 Negative 값 0
  • FP: 예측값을 Positive값 1로 예측했는데 실제 값은 Negative 값 0
  • FN: 예측값을 Negative값 0으로 예측했는데 실제 값은 Positive 값 1
  • TP: 예측값을 Positive값 1로 예측했는데 실제 값 역시 Positive 값 1

 

사이킷런은 오차 행렬을 구하기 위해 confision_matrix() API를 제공합니다. 출력된 값은 ndarray형태로 변환이 됩니다. 위치에 따라 TN은 array[0,0, FP는 array[0,1], FN은 arrat[1,0], TP는 array[1,1]입니다. 

 

정확도는 예측값과 실제값이 얼마나 동일한가에 대한 비율만으로 결정됩니다. 즉, 오차 행렬에서 True에 해당하는 값인 TN과 TP에 좌우됩니다. 정확도는 오차 행렬상에서 다음과 같이 재정의될 수 있습니다.

 

정확도 = 예측 결과와 실제 값이 동일한 건수/ 전체 데이터 수 = (TN+TP)/(TN+FP+FN+TP)

 

일반적으로 이러한 불편형한 레이블 클래스를 가지는 이진 분류 모델에서는 많은 데이터 중에서 중점적으로 찾아야 하는 매우 적은 수의 결괏값에 Positive를 설정해 1값을 부여하고, 그렇지 않은 경우는 Negative로 0값을 부여하는 경우가 많습니다. 예를 들어 사기 행위 예측 모델에서는 사기 행위가 Positive 양성으로 1, 정상 행위가 Negative 음성으로 0값이 결정 값으로 할당되거나 암 검진 예측 모델에서는 암이 양성일 경우 Positive 양성으로 1, 암이 음성일 경우 Negative 음성으로 0값이 할당되는 경우가 일반적입니다. 

 

불균형한 이진 분류 데이터 세트에서는 Positive데이터 건수가 매우 작기 때무에 데이터에 기반한 ML알고리즘은 Positive보다는 Negative로 예측 정확도가 높아지는 경향이 발생합니다. 10,000건의 데이터 세트에서 9,900건이 Negative이고 100건이 Positive라면 Negative로 예측하는 경향이 더 강해져서 TN은 매우 커지고 TP는 매우 작아지게 됩니다. 또한 Negative로 예측할 때 정확도가 높기 때문에 FN이 매우 작고, Positve로 예측하는 경우가 작기 때문에 FP역시 매우 작아집니다. 결과적으로 정확도 지표는 비대칭한 데이터 세트에서 Positive에 대한 예측 정확도를 판단하지 못한 채 Negative에 대한 예측 정확도만으로도 정확도가 매우 높게 나타나는 수치적인 판단 오류를 일으키게 됩니다.

 

TN, TP, FN, FP값은 Classfier성능의 여러 면모를 판단할 수 있는 기반 정보를 제공합니다. 이 값을 조합해 Classifier의 성능을 측정할 수 있는 주요 지표인 정확도(Accuracy), 정밀도(Precision), 재현율(Recall)값을 알 수 있습니다.

 

정확도(Accuracy)는 예측값과 실제값이 얼마나 동일한가에 대한 비율만으로 결정됩니다. 즉, 오차 행렬에서 True에 해당하는 값인 TN과 TP에 의해서만 좌우됩니다.

 

정확도는 분류 모델의 성능을 측정할 수 있는 하나의 요소일 뿐입니다. 앞에서도 말했듯 불균형한 데이터 세트에서 정확도만으로는 모델 신뢰도가 떨어질 수 있는 사례가 많기 때문에 불균형한 데이터 세트에서 정확도보다 더 선호되는 평가 지표인 정밀도(Precision)와 재현율(Recall)을 더 선호하는 측면이 있습니다.

반응형