Legacy/Natural Language Processing

accuracy, precision, recall의 차이

shine_ing 2012. 11. 5. 01:10

자연어처리에 대한 공부를 하다보면 가장 많이 듣는 단어 중 하나는 feature이다.

그리고 항상 실험 부분에서 많이 나오는 단어는 위 제목과 같이 accuracy, precision, recall 이다.

특히 문서 분류나 검색에서 많이 사용되는 실험 척도인데,

주로 precision과 recall을 구한 뒤에 F-measure로 최종 결과를 내는 논문들이 많았다. 

그리고 accuracy로 최종 결과를 내는 논문들 역시 많이 있었는데.

정확률? 재현률? 정밀도?

나 역시 많은 논문을 접하면서 쉽게 단어가 노출되어서 익히 들어왔지만 항상 그때그때 마다 헷갈리는 부분이다.

마치, 일란성 쌍둥이를 한참 들여다보고 나서야 누가 형이고, 동생인지 알 수 있는 것처럼 말이다.

이제 accuracy, precision, recall을 확실하게 기억하기 위해서 집중하도록 하자!!

먼저 표를 살펴보자.



위의 표는 실제 정답(검색, 분류, 띄어쓰기 등..)과 실험 결과를 한 눈에 파악 가능하도록 나타낸 것이다.

먼저 precision에 대해서 알아보도록 하자.


위의 표에서 하늘색 부분을 살펴보자. 실험 결과 true라고 판단 한 것 들이다.

precision은 이렇게 시스템이 true라고 판단 한 것 중에서 실제 true인 것의 percent이다.

즉, 식으로 쓰자면 a/(a+c)가 된다. 

이제 recall에 대해서 알아보자.


recall은 흔히 재현율이라고 번역된다. 실제 정답의 true 중 얼마나 많은 true를 찾아냈느냐 하는 percent이다.

위의 표에서 하늘색 부분이 실제 정답에서의 true이다. 

이 중 시스템이 true라고 판단한 것의 비율이 바로 recall(재현율)이 된다.

즉, 식으로 쓰자면 a/(a+b)가 된다.

마지막으로 accuracy에 대해서 알아보도록 하자.



일반적인 상식(?) 봤을 때 이 시스템의 결과 중 얼마나 맞았는가를 시스템의 성능으로 판단하는 경우가 많다.

이 경우가 바로 accuracy이다.

쉽게 말해서 시스템이 출력해놓은 전체 결과 a, b, c, d 중에서 실제 정답과 같은 판단을 한 비율이 된다.

즉, (a+d)/(a+b+c+d)가 된다.

================================================================================================

이렇게 까지 직접 정리를 해놨으니..다시 까먹는 일이 없었으면 좋겠다..ㅜ_ㅜ

[참조]
http://en.wikipedia.org/wiki/Precision_and_recall
http://www.slideshare.net/nicbet/computing-accuracy-precision-and-recall-presentation