◼️8. AUC(Area Under Curve)를 이해하기 쉽게 배워봅시다.

데이터 모델의 성능을 판단하기 위한 지표, AUC에 대해 알아봅시다.
임동찬's avatar
Jan 30, 2024
◼️8. AUC(Area Under Curve)를 이해하기 쉽게 배워봅시다.

먼저 읽어주세요

아래의 글은 분류 모델(Classification Model)에서 사용하는 Confusion Matrix(혼동 행렬)을 사용하기 때문에, Confusion Matrix(혼동 행렬)에 대해 먼저 알고 가는 것을 추천해요.

Confusion Matrix(혼동 행렬)이란?
데이터 모델이 얼마나 실제를 잘 예측하는 지를 판단하기 위해 사용하는 테이블입니다. 총 4가지 구성요소들을 사용하여 데이터 모델의 성능을 평가합니다.

Confusion Matrix(혼동 행렬) 에서 사용하는 4가지 구성요소들을 간단하게 소개할게요.

예측/실제

거짓

TP

FP

거짓

FN

TN

  • TP (True Positive) :
    모델이 참(Positive)으로 예측했고, 실제로 참(Positive)인 경우를 의미합니다.

  • FP(False Positive) :
    모델이 참(Positive)으로 예측했지만, 실제로 거짓(Negative)인 경우를 의미합니다.

  • TN(True Negative) :
    모델이 거짓(Negative)으로 예측했고, 실제로 거짓(Negative)인 경우를 의미합니다.

  • FN(False Negative) :
    모델이 거짓(Negative)으로 예측했지만, 실제로는 참(Positive)인 경우를 의미합니다.


❓데이터 분석가의 업무: 더 정확한 예측하기

데이터 분석가가 하는 업무 중 하나는 데이터 모델을 만들고 예측 능력을 꾸준히 높여가는 일입니다. 데이터 모델은 기업의 비즈니스 의사결정에 큰 영향을 미치기 때문에, 기업이 비즈니스를 잘 운영하기 위한 정확하고 적용 가능한 모델을 만드는 것이 중요하죠.


❓정확도(Accuracy): 얼마나 믿을수 있을까?

"내가 만든 데이터 모델은 얼마나 정확할까?"

데이터 분석가는 데이터 모델을 만든 뒤, 자신의 모델이 얼마나 정확하게 현실을 반영하는지를 알고 싶어합니다. 이 때, 모델의 정확도를 판단할 때 가장 많이 사용하는 지표는 정확도(Accuracy)입니다.

만약 암 검진을 통해 내가 암에 걸렸는지 아닌지를 예측하는 데이터 모델을 만든다고 생각해볼까요? 모델과 현실의 일치 여부를 총 4가지 경우로 판단할수 있겠네요.

  • 데이터 모델이 암환자(Positive)로 예측했고, 실제로 암환자(Positive)인 경우 (TP)

  • 데이터 모델이 암환자(Positive)로 예측했지만, 실제로 정상인(Negative)인 경우 (FP)

  • 데이터 모델이 정상인(Negative)로 예측했고, 실제로 정상인(Negative)인 경우 (TN)

  • 데이터 모델이 정상인(Negative)로 예측했지만, 실제로 암 환자(Negative)인 경우 (FN)

예측/실제

암 환자

정상인

암 환자

20

5

정상인

5

70

정확도는 (20 + 70) / (20 + 5 + 5 + 70) = 90/100 = 90% 입니다.

정확도(Accuracy) : (TP + TN) / (TP + TN + FP + FN)

정확도(Accuracy)는 참 명쾌하고 이해하기 쉽습니다.
참(True)을 참(True)이라고 예측한 경우와,
거짓(False)을 거짓(False)이라고 예측한 경우를 더해 전체로 나누면 되니까요.
 

정확도(Accuracy)는 데이터 모델이
전체적으로 진짜와 가짜를 합쳐서 잘 분류하는지를 알려주는 친구입니다.


정확도(Accuracy): 때로는 불완전합니다.

하지만 정확도(Accuracy)는 실제로 참인 경우가 거짓인 경우보다 극적으로 많을 경우,
또는 거짓일 경우가 참일 경우보다 극적으로 많을 경우, 별로 쓸모가 없어집니다.

암 검진을 했을 때 결과값이 이렇게 나왔다고 가정해볼게요.

예측/실제

암 환자

정상인

암 환자

5

1

정상인

1

93

혼동 행렬의 정확도는 (5 + 93) / (5 + 1 + 1 + 93) = 98/100 = 98% 입니다.

하지만 데이터 모델이 모든 사람들을 다 정상인으로 판단할 경우에도,
모델의 정확도는 93%로 높은 정확도를 보입니다.

이처럼 굳이 힘들여서 정확하게 판단하는 모델을 만들지 않아도
정상인이 암환자보다 극적으로 많을 경우, 즉 한쪽으로만 판단하는 모델을 만들었을 때도 정확도(Accuracy)는 자동으로 높은 값을 가집니다. 이를 데이터의 불균형 상태(Imbalanced data)라고 부릅니다.

데이터의 불균형은 현실에서 자주 발생합니다. 모든 경우가 50 대 50 처럼 균형잡힌 경우보다 90 대 10 처럼 한쪽이 큰 경우들이 훨씬 더 많으니까요.


AUC: 균형의 수호자

AUC (Area Under the Curve) 점수는 분류 모델(Classification Model)의 성능을 평가할 때 사용하는 또다른 지표입니다. 데이터의 불균형 상태를 방지하고자 만든 지표인 것이죠.

AUC (Area Under the Curve) 점수ROC (Receiver Operating Characteristic)이라는 곡선을 만든후 그 아래의 영역이 얼마나 큰지로 계산할 수 있습니다. ROC 곡선은 TPR(True Positive Rate)를 x축에, FPR(False Positive Rate) 를 y축에 놓고 그린 곡선입니다.

TPR =TP / (TP + FN)

  • TPR(True Positive Rate) 이란?
    TPR은 진짜 양성 비율을 의미하며, 델이 양성(Positive)이라고 예측한 경우 중 실제로 양성(Positive)인 비율을 의미합니다.

FPR = FP / (FP + TN)

  • FPR(False Positive Rate)이란?
    FPR은 거짓 양성 비율을 의미하며, 모델이 양성(Positive)이라고 예측한 경우 중 실제로 음성(Negative)인 비율을 의미합니다..

이 때 모델의 TPRFPR이 얼마인지에 따라 이 곡선에서 모델의 성능이 달라집니다. 이 성능을 조정하는 기준치를 임계치(Threshold)라고 부릅니다. 임계치(Threshold)이란 예측 모델이 참과 거짓을 구분하는 기준점입니다.

  • 임계치를 조절하면서 TPR과 FPR의 변화를 표시한 그래프가 ROC 곡선입니다.

  • AUC의 값은 0과 1 사이이며, 값이 높을수록 모델의 성능이 좋다고 할 수 있습니다.

  • TPR이 높을수록, 그리고 FPR이 낮을수록 더 좋은 모델이 됩니다.

  • AUC 스코어가 0.5면 모델의 성능이 무작위 추측과 같다는 것을 의미하며, 1에 가까울수록 모델이 양성과 음성을 잘 구분한다는 것을 나타냅니다.


이렇게 AUC 스코어는 모델이 참과 거짓을 얼마나 둘 다 잘 구분하는지를 나타내는 중요한 지표입니다. 높은 AUC 스코어는 모델이 TPR와 FPR 사이에서 좋은 균형을 이루고 있음을 의미합니다.


더 많은 데이터 과학이 궁금하신가요?
아래의 버튼을 클릭하면 더 많은 데이터 & AI를 학습할수 있습니다.

Share article

datarichard