Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

ROC 곡선이란 무엇인가? 개념부터 작성 방법까지 총정리

ROC(수신자 조작 특성) 곡선이란 무엇일까요?

ROC는 '수신자 조작 특성(Receiver Operating Characteristic)'의 약자로, 분류기(classifier)의 성능을 시각적으로 평가하는 대표적인 그래프 기법입니다. ROC 곡선은 분류기의 참 양성률(TPR, True Positive Rate)거짓 양성률(FPR, False Positive Rate) 사이의 상충 관계(trade-off)를 한눈에 보여줍니다.

ROC 곡선에서는 참 양성률(TPR)이 세로축(y축)에, 거짓 양성률(FPR)이 가로축(x축)에 배치됩니다. 곡선 위의 각 점은 해당 분류기가 유도해낸 여러 모델 중 하나에 해당합니다.

ROC 곡선의 핵심 지점과 의미

ROC 곡선에는 널리 알려진 해석을 가진 몇 가지 중요한 지점이 있습니다.

  • (TPR: 0, FPR: 0) — 모든 인스턴스를 음성 클래스(negative class)로 예측하는 모델입니다.
  • (TPR: 1, FPR: 1) — 모든 인스턴스를 양성 클래스(positive class)로 예측하는 모델입니다.
  • (TPR: 1, FPR: 0) — 모든 데이터를 완벽하게 분류하는 이상적인 모델입니다.

좋은 모델과 나쁜 모델의 판별 기준

가장 우수한 분류 모델은 곡선의 좌상단(왼쪽 위)에 최대한 가까운 위치에 있어야 합니다. 반면, 무작위로 추측(random guessing)하는 모델은 (TPR: 0, FPR: 0)과 (TPR: 1, FPR: 1)을 잇는 주 대각선 위에 놓이게 됩니다. 여기서 무작위 추측이란, 데이터의 속성 값과 상관없이 고정된 확률 p로 해당 레코드를 양성 클래스로 분류하는 것을 의미합니다.

ROC 곡선을 그리기 위한 전제 조건

ROC 곡선을 작성하려면 분류기가 연속적인 실숫값(continuous-valued) 출력을 생성할 수 있어야 하며, 이 출력값을 기준으로 예측 결과의 순위를 매길 수 있어야 합니다. 즉, 양성 클래스로 분류될 가능성이 가장 높은 데이터부터 가장 낮은 데이터까지 순서를 정할 수 있어야 한다는 뜻입니다. 이러한 출력값은 베이즈 분류기(Bayesian classifier)가 산출하는 사후 확률(posterior probability) 또는 인공 신경망(artificial neural network)이 생성하는 수치형 출력에 해당할 수 있습니다.

ROC 곡선 작성 단계

다음 절차를 따르면 ROC 곡선을 그릴 수 있습니다.

  1. 데이터 정렬: 출력값이 양성 클래스를 나타낸다고 가정하고, 테스트 데이터를 출력값 오름차순(낮은 값부터 높은 값 순)으로 정렬합니다.
  2. 초기 설정: 목록에서 가장 낮은 순위(출력값이 가장 낮은)의 테스트 데이터를 선택하고, 해당 데이터를 포함해 모든 데이터를 양성 클래스로 할당합니다. 이는 사실상 모든 테스트 데이터를 양성 클래스로 분류하는 것과 같습니다. 이때 모든 양성 인스턴스는 올바르게 분류되고 모든 음성 인스턴스는 오분류되므로 TPR = FPR = 1이 됩니다.
  3. 임계값 이동 및 갱신: 정렬된 목록에서 다음 테스트 데이터를 선택합니다. 선택 지점까지의 데이터는 양성으로, 그 아래의 데이터는 음성으로 분류합니다. 직전에 선택했던 데이터의 실제 클래스 레이블을 확인하여 TP(참 양성)와 FP(거짓 양성) 개수를 갱신합니다.
  4. 개수 조정 규칙: 직전에 선택한 데이터가 양성 클래스였다면 TP 개수는 1 감소하고 FP 개수는 그대로 유지됩니다. 반대로 음성 클래스였다면 FP 개수는 1 감소하고 TP 개수는 그대로 유지됩니다.
  5. 반복: 최고 순위(출력값이 가장 큰)의 테스트 데이터를 선택할 때까지 3~4단계를 반복하며 TP와 FP 개수를 갱신합니다.
  6. 곡선 플롯: 마지막으로 분류기의 TPR을 세로축에, FPR을 가로축에 대응시켜 ROC 곡선을 그립니다.