더북(TheBook)

drawROC() 함수는 ROC 곡선을 만드는 상세한 방법을 포함하고 있습니다(코드 3-7 참조). 다음과 같은 작업을 수행합니다.

신경망의 시그모이드 출력(확률)에 대해 임계값을 변경하여 각기 다른 분류 결과를 얻습니다.

각 분류 결과와 실제 레이블(타깃)을 사용해 TPR과 FPR을 계산합니다.

FPR에 대한 TPR 그래프를 그려서 ROC 곡선을 만듭니다.

코드 3-6에서 보듯이 훈련 초기(에포크 001)에는 모델의 가중치가 랜덤하게 초기화되기 때문에 ROC 곡선이 점 (0, 0)과 점 (1, 1)을 연결하는 대각선에 매우 가깝습니다. 훈련이 진행됨에 따라 ROC 곡선은 왼쪽 위 모서리 쪽으로 점점 더 올라갑니다. 왼쪽 위 모서리는 FPR이 0이고 TPR이 1인 지점입니다. 0.1과 같이 주어진 FPR 수준에 초점을 맞추면 훈련을 진행함에 따라 TPR 값이 증가하는 것을 볼 수 있습니다. 쉽게 말해서 잘못된 경보(FPR)를 일정 수준으로 고정한다면 훈련이 진행될수록 높은 수준의 재현율(TPR)을 달성할 수 있습니다.

이상적인 ROC 곡선은 왼쪽 위 모서리에 가깝게 구부러진 26 모양의 곡선입니다. 이때 최고 성능의 이진 분류기인 100% TPR과 0% FPR을 얻을 수 있습니다. 하지만 실전 문제에서는 모델을 향상시켜 ROC 곡선을 왼쪽 위 모서리에 가깝게 만들 수 있을 뿐입니다. 왼쪽 위 모서리는 이론적인 이상일 뿐 절대 달성할 수 없습니다.

ROC 곡선의 모양과 그 의미에 대한 설명을 토대로 얼마나 좋은 ROC 곡선인지 그 아래 면적을 계산하여 정량화할 수 있습니다. 즉, 최댓값이 1인 단위 사각형 공간을 ROC 곡선과 x축이 얼마나 감싸고 있는지 측정합니다. 이를 AUC(area under the curve)라고 부르며 코드 3-7의 코드로 계산합니다. 이 측정값이 거짓 양성과 거짓 음성 사이의 균형을 잡는 데 정밀도, 재현율, 정확도보다 낫습니다. 랜덤한 예측의 ROC 곡선(대각선)의 AUC는 0.5입니다. 모양의 이상적인 ROC 곡선의 AUC는 1.0이 됩니다. 훈련이 끝난 피싱 감지 모델의 AUC는 0.98을 달성했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.