본문 바로가기
Machine Learning

통계 분석 #10 : 머신러닝 분류회귀, ROC 곡선의 개념과 모델 평가 방법

by 무적물리 2020. 3. 28.

머신러닝의 분류를 평가할 때, Receiver Operation Characteristic (ROC) 곡선과 ROC 곡선의 결과 값인 Area Under Curve (AUC) 값으로 머신러닝 모델의 성능을 평가할 수 있습니다. 이때의 데이터는 범주형 데이터입니다. ROC 곡선은 혼동행렬의 민감도와 특이도를 Plot 함으로써 구할 수 있습니다. 오늘 포스팅에서는 머신러닝 분류 모델의 평가 방법인 ROC 곡선과 AUC에 대해 포스팅 정리해보겠습니다.




ROC 곡선이란?

ROC 곡선은 분류 모델의 성능 평가 방법입니다. 이는 2차 세계대전 당시 수신된레이더 신호에서 전투기를 찾으려는 미국의 레이더 연구에서 탄생한 개념입니다. 이는 두개의 범주를 가지고 있는 분 모형의 성능을 평가하기 위한 그래프 입니다. 민감도(Sensitivity)와 특이도(Specificity)를 분류 모델을 평가하기 위해 사용합니다.. 민감도와 특이도는 이전 포스팅인 혼동행렬의 개념에서 설명하였으니 참고하시면 되겠습니다.


ROC 곡선의 특징

ROC 곡선은 위에서 설명한 바와 같이 신호감시이론인 Signal Detection Theory의 한 분야였습니다. 2차 세계 대전 당시 레이더가 감지한 신호를 통해서 적함, 아군함, 잡음을 판별하는데 사용되었습니다. ROC는 Receiver Operation Characteristic의 약자인데, 이는 레이더를 수신하는 수신기의 특성을 요약하여 보여준다는 점에서 지어진 이름입니다. 따라서, 데이터 분류 모델의 성능 평가 방법의 이름과는 안맞아 보일 수 있습니다. 2차 세계대전 이후 의료, 금융 등 분류가 필요한 분야에서 ROC 분석이 유용하게 사용되었습니다.


민감도와 특이도

이전 포스팅에서 설명했지만 이를 요약해서 설명해 보자면, 민감도(Sensitivity)는 실제 Positive를 Positive로 예측하는 비율이며, 특이도(Specificity)는 실제 Negative를 Negative로 예측하는 비율입니다. 민감도는 진양성율 이라고도 하며, 특이도는 진음성율이라고도 합니다.


□ 민감도(Sensitivity)

- 진양성율(True Positive Rate)

- 실제 Positive, 예측 Positive


□ 특이도(Specificity)

- 진음성율(True Negative Rate)

- 실제 Negative, 예측 Negative


아래 표와 같이 실제 분류와 예측 분류를 표현할 수 있습니다. 실제 값과 예측에 의한 분류 값이 맞으면 파란색, 틀리면 빨간색으로 표현 했습니다.



민감도는 실제 Positive를 Positive로 예측하는 비율이며, 특이도는 실제 Negative를 Negative로 예측하는 비율이라고 했습니다. 따라서, 민감도는 a/(a+c)이며, 특이도는 d/(b+d) 입니다. 또한 얼마나 분류를 잘했는지 평가하는 Accuracy(정분류율)이 있습니다. 이는 (a+d)/(a+b+c+d)에 해당합니다.


- 민감도(Sensitivity) =  a / (a+c)

- 특이도(Specificity) = d / (b+d)

- Accuracy = (a+d) / (a+b+c+d)


민감도와 특이도는 서로 반비례 관계입니다. ROC 곡선은 민감도와 특이도의 여러 상황을 고려해서 성능을 판단할 수 있도록 한눈에 보여주는 역할을 합니다.



ROC 곡선 적합도 판단 기준

ROC 곡선은 민감도와 특이도를 바탕으로 그려지는 곡선입니다. ROC 곡선의 X축은 특이도이며, Y축은 민감도 입니다. ROC 곡선은 아래와 같은 그래프로 그려지는데, 분류 모형의 적합도를 알 수 있습니다. 적합도는 1에 가까울수록 좋은 모형이라고 판단하며 여러개의 분류 모형 중 가장 좋은 모형을 선택하는 기준으로 활용됩니다. 곡선 아래 면적을 선택 기준으로하여 면적이 가장 넓은 모형을 채택하는 것이 좋습니다.



적합도는 곡선 아래의 면적인 Area Under Curve (AUC) 로 판단하는데, 1에 가까울수록 좋은 모형이라고 할 수 있습니다. 또한, 곡선이 Y축의 1 부근에서 직각으로 꺽여야 좋은 분류모델을 만들었다고 평가할 수 있습니다. AUC의 판단 기준은 아래와 같습니다. 즉, 곡선의 커브가 범위의 왼쪽 꼭지점과 가까울 수록 성능이 좋은 분류 모델로 평가할 수 있습



마무리

ROC 곡선은 분류모델을 평가하기 위해 중요한 방법입니다. 위와 같은 간단한 개념을 가지고 있으며, 머신러닝이나 통계적 방법의 분류회귀 모형에 사용해보시기 바랍니다. 사실 이 포스팅은 제 개인 메모장의 성격이 강하니 궁금한 것이 있으면 댓글로 남겨주십시오.


댓글