Precision and Recall for Multi Class
모델의 정확도를 평가하는 방법은 크게 위와 같이 4가지로 볼 수 있는데, accuracy 는 전체 모수중에 맞춘 전체의 확률로 많이 사용되지만 데이터가 unbalance 할 경우 (예를들어 0,1 라벨중 0의 비중이 90% 이상) 인 경우라면 0으로 전부 예측해도 전체 정확도는 90% 가 되버리는 문제가 있다. 이러한 문재를 해결하기 위해 나온 개념이 precision 과 recall로 아래의 그림과 같다.
바이너리 분류 모델의 성능 평가는 위와 같이 TP,TN,FP,FN 로 나눠서 Precision 과 Recall 을 측정하여 그 모델의 정확도를 측정할 수 있다.
F1 score 는 precision 과 recall을 한번에 반영하기 위한 방법으로 가장 많이 사용되는 방법이다.
그렇다면 multi class 에서 precision 과 recall은 어떻게 계산할까. 아래와 같이 계산이 가능하다
$n$ is the number of examples. $Y_i$ is the ground truth label assignment of the $i^{th}$ example.. $x_i$ is the $i^{th}$ example. $h(x_i)$ is the predicted labels for the $i^{th}$ example.
(1) 전체 Recall
Yi 는 해당 레이블을 전체 모수, 분모는 h(x) 예측값과 Yi 의 교집합으로 각 레이블의 Recall을 구하고 평균을 내는 방식으로 전체 Recall 을 구해 줌
(2) 전체 Precision
전체 특정 Lable 로 예측한 수ㄹ르 분모, 분자를 h(x) 예측값과 Yi 의 교집합으로 각 레이블의 Precision 을 구하고 평균을 내는 방식으로 전체 Precision 을 구해줌
(3) F1 Score
위에서 구한 Precision 과 Recall 을 활용하여 조화 평균을 내어주면 F1 Score 가 된다.
Precision 과 Recall 을 조화평균을 구하여 F1 Score 를 구해주자, 위의 그림에서 보는 것과 같이 조화 평균은 작은 쪽으로 더 수렴하는 특징을 갖게 되며, 이러한 특징을 활용하여 Precision 과 Recall 을 적절하게 조합한 F1 Score 를 구할 수 있다.