[TIL]분류문제 실습
MNIST 이중분류(binary classification)
- 정밀도 : 모델이 positive라고 했을 때 그중 몇개가 정말로 Positive인지의 비율
- 재현율 : 데이터에서 positive인 것들의 개수 중에서 모델이 얼마나 잘 positive를 찾아냈는지에 대한 비율
어떤 모델은 precision이 높고 recall이 낮으며, 어떤 모델은 그 반대일 수 있다. 어떤 모델이 좋은 모델일까? 이것은 경우에 따라서 다를 수 있다.
의료진단의 경우 precision보다 recall이 중요하다. FP인 경우 병이 있다고 판단했는데 실제로는 병이 없는 경우이다. 번거롭지만 리스크가 큰 것은 아니다.
하지만 FN인 경우 실제로 병이 있는데 병이 없다고 판단하게 되면 리스크가 크다. 이런 경우 recall이 높아야 한다.
스팸을 분류하는 경우를 생각해보자. Precision을 높이기 위해 recall이 낮아지면, 스팸이 아닌데 스팸이라고 판단되었는데 중요한 이메일이면 리스크가 크다. 따라서 스팸을 분류하는 경우도 recall이 더 중요하다.
동영상을 분류하는 경우(어린이에게 적절한 동영상인지) precision이 더 중요하다. 분류기가 잘못해서 좋은 동영상이 아닌데 보여주는 것은, 그 하나 때문에 큰 리스크가 발생할 수 있다.
하나의 모델 안에서 precision과 recall을 튜닝할 수 있다.
위의 사진을 보면 오른쪽으로 갈수록 이 이미지들이 높은 스코어를 가진다.
주어진 이미지에 대해 positive/negative를 판별하기 위해 스코어를 보는데, 스코어 값이 특정 기준보다 크냐/작냐에 따라 판별한다.
그 기준을 threshold라고 한다.
Threshold을 낮게 잡으면 모든 경우에 positive라고 말한다. Recall이 1에 가깝게 된다. 존재하는 모든 positive를 positive라고 예측하기 때문이다. 반면 precision은 낮을 수밖에 없다.
반면 Threshold를 높게 작으면 recall은 낮아지고 precision은 높아진다.
그래서 중간정도의 threshold를 많이 사용한다. 하지만 앞의 암이나 스팸 메일등 precision과 recall의 중요도에 따라 달라지기도 한다.
어떤지점이 가장 좋은 지점일까? 급격한 변화가 일어나기 전의 지점을 threshold로 지정하면 좋은 trade-off라고 할 수 있다.
하나의 모델 안에서 precision, recall을 조정하기 위해서는 모델의 예측값이 참이냐 거짓이냐 보다는 스코어를 알아야 한다.
다중 분류(multiclass classification)
이진문제가 아닌 다중분류의 경우에는 클래스가 비슷한 분포를 가지고 있기 때문에 그냥 정확도만 구해도 불균형의 문제가 별로 없어서 정밀도나 재현율을 구하지 않고 정확도를 구하는 것도 괜찮은 지표가 된다.
- Data Augmentation
- 학습한 모델의 성능을 향상시키기 위해 data augmentation이라는 방법을 사용
- 이미지에 변형을 가해서 추가적인 데이터를 만들어서 학습데이터에 포함해 모델을 새로 학습하면 좀더 안정적인 모델을 만들 수 있다.