본문 바로가기

데이터 다루기/머신러닝 이론

[Machine Learning] ROC 곡선 및 AUC

728x90
반응형

안녕하세요. 이번 포스팅에서는 ROC Curve (ROC 곡선)과 AUC 에 대해서 배워볼거에요.

이 두 가지는 실제로 Classification model 에서 굉장히 자주 쓰이는 데, 무엇을 의미하는 지를 모르고 쓰는 분들이 많은 것 같아요.

오늘은 핵심 개념을 잡아보고자 합니다.

ROC 곡선은 Classification model 에서 예측 threshold와 밀접한 관계가 있어요.

Binary Classification이라 가정할 때, Logistic Regression을 하면 각 관측치에 대해서 1의 값을 가질 확률이 예측이 됩니다.

보통 0.5를 Threshold로 정하고, 0.5보다 크면 1, 작으면 0의 값을 Return 하게 되는거지요.

ROC Curve는 이 Threshold를 바꿔가면서, Sensitivity 와 1-Specificity가 어떻게 변화하는가를 나타내는 곡선입니다.

예를 들어볼게요.

아래와 같은 데이터가 있다고 합시다.

8마리의 쥐가 있는데, 4마리는 비만이고, 4마리는 비만이 아닙니다.

쥐의 Weight를 입력 변수로하여, 비만 여부를 결정하는 Logistic Regression을 적합해볼게요.

일반적으로 Threshold를 0.5로 설정하면, Confusion Matrix는 아래와 같이 만들어집니다.

이 때, Sensitivity = 0.75, 1-Specificity = 0.25 의 값을 가지는군요.

ROC Curve를 그리기 위해서는 Threshold가 0~1로 연속적으로 바뀌면서 그려집니다.

0일 때는 모든 관측치를 Obese로 예측하게 됩니다.

이 때, Sensitivity는 1이고, 1-Specificity는 1의 값을 가집니다.

ROC 그래프는 (1,1)에서 시작하게 됩니다.

Threshold를 1까지 올리면서의 변화가 ROC 곡선입니다.

위의 데이터에서는 ROC Curve는 다음과 같습니다.

AUC는 ROC Curve 아래의 면적입니다.

0~1사이의 값을 가지게 되고, 1의 값에 가까울 수록 모델의 성능이 좋다는 것을 의미합니다!

[참고] StatQuest

반응형