이번 포스팅은 조금 짧을 거 같다. Classification 측정 방법에 대해서 이야기해보자. 보통 Accuracy를 통해서 Classification의 좋고 나쁨을 결정을 한다. 그런데 사실 이 수치가 좋고 나쁨을 결정하는데 절대적인 것은 아니다. 우선 Accuracy를 어떻게 구하는지 설명을 할 것인데, 그에 앞서 confusion matrix에 대해서 이야기 해보도록 하자.
위의 테이블에서 confusion matrix의 예시를 보여주고 있다. 아주 직관적인 테이블이다. 세로는 real value count를 나타내고 가로는 predicted value count를 나타낸다. 예를 들어 실제 값이 true인 것들은 1+3, 4개가 있고, 실제 값이 false인 것들은 2+4, 6개가 있다. 가로 라인을 보면, true로 예측된 값들은 1+2, 3개가 있고, false로 예측된 값은 3+4, 7개가 있다는 것이다.
Confusion matrix를 보면 알아야 할 내용들이 또 있다. True Positive, True Negative, False Positive, False Negative이다.
True Positive : 맞다고(Positive) 말해서 실제로 맞음(True)
True Negative : 틀리다고(Negative) 말해서 실제로 맞음(True)
False Positive : 맞다고(Positive) 말해서 실제로 틀림(False)
False Negative : 틀리다고(Negative) 말해서 실제로 틀림(False)
실제로 True인 것을 True라고 말해서 맞은 것, 실제로 False인 것을 False라고 말해서 맞은 것은 각각 True Positive, True Negative이다. 둘다 True가 들어간다. 맞긴 맞았다는 말이다. 반면, 실제로 True인 것을 False라고 말해서 틀린 것, 실제로 False인 것을 True라고 말해서 틀린 것은 각각 False negative, False positive이다. 아무튼 틀렸다는 말이다. 여기서 Accuracy는 아래와 같은 공식으로 구한다.
너무 직관적인 공식이라 할 말이 없다. 당연한거다. 전체 중에 맞은 것의 비율이 Accuracy이다. Accuracy 말고도 우리가 구해야 할 값들이 몇 개 더 있다. 아래의 공식을 보자.
위의 값들을 왜 구해야 하는지 알아보기 위해서 Accuracy Paradox를 우선 알아보자. Class Imbalance Problem이라고도 불리는데, 아래와 같은 경우에 나올 수 있는 말이다.
위의 경우를 보면, Negative로 분류된 경우가 극히 많은 것을 알 수 있다. 이것의 Accuracy를 구하면.... 높다. 높은 결과다. 그런데 이는 그냥 Negative로 모든 것을 예측해버리므로서 Accuracy를 높일 수 있다. Negative 값이 극히 많기 때문에 그냥 Negative로 예측해버린다고 하면 아래와 같은 Confusion matrix를 갖게 된다.
이 confusion matrix의 Accuracy를 구하면 우리가 고생해서 구한 model의 Accuracy보다 높게 나온다. 기껏 공부해서 시험본 것보다 그냥 연필굴려서 찍어서 시험 본 것이 더 잘 본 슬픈 케이스가 되겠다. (실제로 이와 같이 하나의 major class value로 전체를 예측하는 model이 있다. Zeror classification이라고 한다.) 이런 경우를 Accuracy Paradox라고 한다.
Recall(=True Positive Rate), Precision, F1 measure은 Accuracy Paradox가 있는 경우에 그것을 catch해줄 수 있는 지표가 된다.
Accuracy는 높게 나와도 나머지 값들은 그다지 좋지 않게 나온다. 아주 완벽한 model에서는 값이 어떻게 계산되는지 보자.
완벽한 model에 대한 confusion matrix에서는 모든 값이 높게 나온다. 마지막으로 False Negarive Rate와 False Positive Rate에 대해서 조금 더 이야기를 해보자. False Negarive Rate은 중요한 내용이 조금 있다. 어떤 것에 대한 classification이냐에 따라서 false positive rate이 반드시 낮아야 되는 경우도 있고, 별로 중요하지 않은 경우도 있기 때문이다. 이것을 아는 것이 중요하다. 물론 기본적으로 False Negarive Rate은 아무튼 틀린 것에 대한 비율이니까 낮은 값일 수록 좋은 것은 확실하다. 그런데 예를 들어 False Negarive Rate이 5%정도이면 일반적인 classification에서는 낮다고 판단되어 그 classification model을 사용하는데 전혀 지장을 주지 않지만 예를 들어, 암을 판정하는 검사에서 False Negarive Rate 5%는 매우 치명적인 것이기 때문에 적합한 검사가 아니게 된다. 암을 판정하는 검사에서 False Negarive는 다시 말해서, 암이 있는 사람에 대해서 없다고 말하는 경우이다. 실제로 암이 없는 100명의 사람들 중에서 5명은 암이 있음에도 불구하고 없다고 나와버리면, 그건 매우 치명적인 결과를 초래한다. 그래서 classification model에 따라서 False Negarive Rate은 중요하게 다뤄져야 하는 경우가 있다는 것이다. 마찬가지로 False Positive Rate이 중요하게 여겨지는 경우도 있을 것이다.
다음 포스팅에서는 Naive Bayes Classification에 대해서 알아보도록 하자.
'Data Mining' 카테고리의 다른 글
[Data Mining] Decision Tree (4) | 2015.12.24 |
---|---|
[Data Mining] Naive Bayes Classification (3) | 2015.12.23 |
[Data Mining] kNN Classification (0) | 2015.12.21 |
[Data Mining] Logistic Regression (3) | 2015.12.20 |
[Data Mining] Multi linear regression (4) | 2015.12.19 |