더북(TheBook)

ROC 커브를 사용하면 두 개의 모델을 비교할 수 있다. 그림 9-20에 보인 모델 (A)와 모델 (B)를 보자. 모델 (B)는 모델 (A)에 비해 FP Rate 대비 TP Rate가 컸다. 따라서 모델 (B)가 모델 (A)보다 우수하다. 일반적으로는 ROC 커브를 그린 뒤 좌측 상단에 위치한 커브가 더 우수한 것으로 보면 된다.

그림 9-20 ROC 커브를 사용한 모델의 비교
그림 9-20 ROC 커브를 사용한 모델의 비교

이러한 이유로 ROC 커브를 그린 뒤 그 아래의 면적을 AUCArea Under the Curve라 하여 모델 간의 비교에 사용한다. 그림 9-21에 AUC를 보였다.

그림 9-21 ROC 커브와 AUC
그림 9-21 ROC 커브와 AUC

여기서는 ROCR 패키지를 사용하여 ROC 커브를 그리는 방법에 대해 살펴본다. 다음은 ROC 커브 관련 함수를 정리한 것이다.

표 9-16 ROC 커브

ROCR::prediction : prediction 객체를 생성한다.

ROCR::prediction(
  predictions, # 예측값
  lables       # 실제 값
)

반환 값은 ROCR 패키지에서 사용하는 prediction 객체다.

ROCR::performance : prediction 객체로부터 performance 객체를 생성한다.

ROCR::performance(
  prediction.obj,  # prediction 객체
  # 성능 평가 메트릭. acc(Accuracy), fpr(FP Rate), tpr(TP Rate), rec(recall) 등을 지정할 수 있다.
  # 전체 목록은 도움말 ?performance를 참고하기 바란다.
  measure,
  # 두 번째 성능 평가 메트릭. x.measure를 지정하면 X 축은 x.measure, Y 축은 measure에 지정한
  # 메트릭으로 그래프를 그린다. x.measure를 지정하지 않으면 기본값 "cutoff"가 사용된다.
  # cutoff는 표 9-15를 설명하면서 사용한 기준값에 해당한다. 즉, 서로 다른 기준값에 대한
  # measure의 그래프가 그려지게 된다.
  x.measure="cutoff",
  ...  # 성능 메트릭에 추가로 넘겨줄 인자들
)

반환 값은 performance 객체로, plot( )을 사용해 그래프로 나타낼 수 있다.

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