컴퓨터과학/AI_ML강의 (Andrew Ng)

[ML / Andrew Ng] Machine Learning System Design - Handling Skewed Data

MG# 2022. 5. 31. 12:01

이번 챕터에서는 skewed data에 대해 알아볼 예정이다. 앞에서 봤던 cancer classification 문제를 예를 들면 어떤 모델을 설계해 1%의 오류가 발생했다고 가정하자. 그러면 이 모델은 좋은 모델이라고 할 수 있어 보인다. 하지만 train data를 들여다 보니 실제 암 환자가 전체의 0.5% 밖에 안 되었다.

 

그렇다면 이 모델이 환자 전부를 암에 걸리지 않았다고 판단해도 0.5%의 error만 갖게된다. 그러므로 이 모델이 좋다고 말할 수 없게 된다. 이런 극단적인 데이터를 skewed data 라고 부른다. 데이터가 너무 한 쪽으로 몰려있기에 이런 경우 error 만으로는 모델의 성능을 정확하게 평가하기 힘들다.

모델을 정확하게 판단하기 위해 Precision 과 Recall 이란 척도를 이용한다. 그 전에 우선 왼쪽 표를 이해할 필요가 있는데 Actual class 와 Predicted class 가 있다. 여기서 Actual class 가 1이면 실제로 암 환자인 경우이고 0 이면 아닌 경우이다. 그리고 Predicted class 가 1이면 모델이 암 환자로 판단한 경우이고 0 이면 아닌 경우이다. 그렇게 해서 4가지를 분류해 보자면

- (Actual 1, Predicted 1) True positive : 실제로 암 환자이고 모델도 암 환자로 판단한 경우이다.

- (Actual 1, Predicted 0) False negative : 실제로 암 환자이지만 모델은 정상으로 판단한 경우이다.

- (Actual 0, Predicted 1) False positive : 실제로 암 환자가 아니지만 모델은 암 환자로 판단한 경우이다.

- (Actual 0, Predicted 0) True negative : 실제로 암 환자가 아니고 모델도 정상으로 판단한 경우이다.

 

이를 토대로 Precision을 먼저 정의하자면 모델이 암 환자로 판단한 것 중 실제로 암 환자인 비율이다. 뜻 그대로 모델의 정확도를 뜻하며 식은 위 그림과 같다. 다음 Recall은 실제 암 환자 중 모델이 얼마나 찾았는지의 비율이다. 뜻은 재현율이라고 한다.

이제 이 둘을 이용해 목적에 따라 모델을 변형시킬 수 있다. 우리는 logistic regression을 할 때 h함수가 0.5 이상이면 1로 미만이면 0으로 판단했다. 이 기준점을 (여기서 0.5) threshold 라 부른다. 이 값을 바꾸면 precision 과 recall 도 영향을 받게 된다.

 

threshold 값을 크게 잡으면 그 만큼 data를 1로 예측하기 더 어려워지고 더 정확해진다. 그렇게 되면 false positive 가 줄어들게 되고 결과적으로 precision이 상승하는 효과를 얻는다. 오히려 반대로 data를 0으로 예측하는 경우가 더 많아지기에 false negative가 커지고 recall 은 줄어들게 된다. threshold를 작게 잡으면 그 반대의 효과를 얻는다.

 

요약하자면 threshold에 따라 precision과 recall 영향을 받게 되고 결국 이 둘은 서로 반비례하는 관계를 갖게 된다. 그리고 이를 precision 과 recall 의 trading off 라고 부른다. 우리가 앞서 본 cancer classification 문제는 recall이 더 높은 모델이 유용하다. 그 이유는 암 환자가 아닌 사람을 오진해도 다시 검사해보면 되지만 반대로 실제로 암 환자이지만 모델이 이를 놓칠 경우 더 위험한 상황이 생기기 때문이다.

이제 적절한 precision(P) 와 recall(R)을 구하는 법을 알아보자. 단순히 이 둘을 평균내는 방법이 있지만 이 방법은 y = 1로 항상 판단하는 좋지 않은 모델도 높은 점수를 받기에 좋은 방법은 아니다. 위 그림에서 F-score가 일반적으로 사용되는데 이에 따르면 위 그림의 Algorithm 1이 선택된다.