ROC curve에 대해 알아보자
#평가지표 #ROCcurve
목차
- Time seriesAnomaly Detection Generative Adversarial Networks-Model Structure
- Time seriesAnomaly Detection Generative Adversarial Networks-loss function
- Intro to the Time Series Anomaly Detection
- Text 데이터 광고 필터링을 위한 분류 모델 구축
- 사용자 리뷰 핵심어 추출 및 감성분석
- Deep Learning - 핵심 개념 & 용어
- NLP - 딥러닝 모델의 범용적 활용가능성 분석
- Bank marketing 정기예금 가입여부 예측
- ROC curve에 대해 알아보자
- 연어의 회귀본능이 아닌 선형회귀에 대해 알아보자
ROC curve에 대해 알아보자
머신러닝에 대해 일주일간 다양한 모델들을 공부했다. 사용 목적에 따라 많은 종류의 머신러닝 모델이 존재하지만 결국 큰 맥락에서 보자면 머신러닝은 결국 가지고 있는 데이터로 학습을 시키고, 학습시킨 모델을 이용하여 문제를 풀어내려고(예측하려고) 하는 것이다. 결국 모델의 성능을 높인다는 의미는 모델이 예측을 잘 할 수 있게 한다는 뜻이고 이를 위해서는 해당 모델을 정확하게 평가할 수 있어야 한다.
머신러닝 모델에 대해 공부하다보면 해당 모델이 어떤 매커니즘으로 작동하는지, 배경은 무엇인지 등을 배우게 되지만
공통적으로 모델마다 등장하는 섹터가 있다. 그것은 바로…..평가지표다.
위에서 말했듯이 제대로 모델의 성능을 알 수 있어야 개선이 가능하기 때문에
모델을 제대로 평가하는 것도 만드는 것만큼이나 중요하다.
그래서 이번에는 공부했던 다양한 지표중에 이해가 제일 안갔던 ROC curve
에 대해 알아보려고 한다.
함께 공부를 시작해보자.
ROC curve는 이진분류를 하는 모델의 성능을 평가하는 지표로 사용된다. 이진분류는 쉽게 말하면 O,X 문제처럼 두가지 중 하나를 고르는 분류를 말한다. 백문이 불여일견이라고 일단 그림을 보자.
출처 : http://www.navan.name/roc/
구 개의 큰 산 모양을 보이는 그림은 데이터에서 두 클래스의 분포를 나타낸다. (O,X 문제에서 O와 X의 분포) 암환자를 진단하는 모델을 만든다고 할 때, 오른쪽은 암환자, 왼쪽은 암환자가 아닌 경우이다. 산이 겹치는 부분 가운데의 threshold는 모델을 만든사람이 정하는 변수로 이 임계값을 기준으로 모델은 오른쪽에 있으면 암환자로, 왼쪽에 있으면 암환자가 아니라고 판단을 내리게 된다. 그림의 좌 상단에 위치한 곡선이 ROC curve로 ROC curve는 위의 임계값에 대한 모델의 성능을 표시한 곡선이다. 핵심을 먼저 얘기하고 넘어가자면 저 커브 아래의 면적(AUC, Area Under the Curve)이 클수록 모델의 성능이 뛰어나다는 것을 의미한다.
커브에 대해 살펴보려면 우선 축이 무엇인지 알아보자. x축은 FPR y축은 TPR이라고 적혀있는데 이는 각각
FPR은 False Positive rate TPR은 True Positive rate
을 뜻한다.
의미는 같아도 해석을 사람마다 다르게하는 경향이 있으니 위 그림의 구성요소인 actual class와 predicted class에 대한 설명을 하고 넘어가면 좋을 것 같다.
먼저 actual class에는 True와 False로 나뉘는데 이는 예측결과가 맞으면 True, 틀리면 False라는 것을 의미한다. 다음 predicted class는 Positive와 Negative로 나뉘는데 이는 예측을 긍정적으로 했으면 Positive, 그렇지 않다면 Negative로 표현한다.
위로 돌아가서 암환자를 예로 들어보면 TPR은 실제로 암에 걸린사람을 암에 걸렸다고 예측했다는 것이고 FPR은 암환자라고 예측했으나 예측결과가 틀린것을 의미한다.
TPR이 높다는 의미는 실제로 암이 걸린 환자를 암이 걸렸다고 판단을 잘 내린다는 뜻이고 FPR이 높다는 의미는 암이 걸리지 않은 환자도 모두 암으로 판정한다는 의미이다. 암환자를 적게 놓치고 싶다면 임계값을 왼쪽으로 옮겨(낮춰) 빨간 클래스가 임계값 오른쪽에 모두 들어가게 하면 암환자를 무조건 맞출 수 있게 되겠지만 반대로 암환자가 아닌사람을 암환자로 오진하는 경우도 그만큼 늘어날 것이다. 반대로 정상인을 암환자로 오진하는 경우를 줄이고 싶다면 임계값을 오른쪽으로 옮겨(올려) 파란 클래스가 임계값 왼쪽에 모두 들어가게하면 되지만 이 경우, 진짜 암에 걸린 환자를 암환자가 아니라고 판단하는 경우도 늘어나게 된다.
처음에 핵심을 이야기하며 저 곡선의 아래 면적이 클수록 성능이 좋다고 했는데 이를 다르게 이야기하면 두 클래스를 더 잘 예측하는 모델일수록 곡선은 그림의 좌상단으로 가까워져 사각형에 가깝게 되고 성능이 안좋은 모델일수록 직선에 가까워져 곡선 아래 면적이 삼각형에 가깝게 된다.
즉 ROC curve는 임계값을 어떻게 설정해야할지 알고 싶을 때 임계값에 대한 정답율과 오답율의 비율을 보는 곡선이라고 이해하면 될 것이다.
오늘은 이진분류모델의 임계값을 결정할 때 도움을 줄 수 있는 ROC curve에 대해 알아봤다. 다음에도 유익한 주제를 들고 찾아뵐 수 있기를 기대하며 글을 마친다.