스팸 클러스터 알고리즘 평가 방법과 논문 실험 결과

이번에 논문을 쓰면서 내가 아는 가장 최다의 클러스터링 성능 측정 방법을 써서 평가했다.

야후에 와서도 느낀거고 논문을 쓰면서도 느낀거지만 알고리즘 자체를 만드는 것만큼 중요한것이 이 알고리즘이 어느정도 성능 향상은 없는지 다각도로 그리고 심층적으로 체크해 보는 일이였다.

실험 그 결과에 대해서 객관적인 결론을 낸 결과가 다른 알고리즘을 개발하기 위한 어떤 시발점이 되지 않다 하는 생각을 해본다.

매번 알고리즘에만 심취해서 그동안 블로그를 써오다가 이번에 성능 평가에 대한 이야기를 해보려고 한다. 그것도 분류 알고리즘에 대한 성능평가로 말이다.

a: ham (correctly classified)       [true negative]


b: spam (correctly classified)      [true positive]


c: ham misclassification           [false positive]


d: spam misclassification          [false negative]


e: total number of spam(real)


f: total number of ham(real)


 


hm% : ham misclassification rate


sm% : spam misclassification rate


lam% : average misclassification rate


 


 


hm = c / (a + c)                             


 


sm = d / (b + d)                             


 


 


 


error = (c + d) / (e + f)                   


 


accurate = (a + b) / (e + f)                


 


recall = b / e                              


 


precision = b / (b + c)   




         


사용자 삽입 이미지 














사용자 삽입 이미지








본인의 논문 내용에서 좀 떼왔다.

스팸을 예로 들자면 hm이라는것은 False Positive 비율을 의미한다. 그리고 sm이라는것은 False Negative 비율이다. 후자보다 전자를 스팸 필터에서 중요시 여기는 이유는 햄을 스팸이라고 판정해서 나오는 비율이 스팸을 햄이라고 평가하는 비율보다 결과적으로 더 나쁘고 비용도 더 소요되기 때문이다.
그리고 그들의 평균 비율을 구한것이 복잡한 식이지만 lam 이라는 것으로 표현된 식이다.

error는 식 그대로 error율을 의미하는 것이다.
그리고 accurate 비율도 역시 필터의 정확도를 의미한다.

recall과 precision이 나오는데 모두 스팸을 대상으로 하는 성능 측정 결과이다.
recall은 스팸필터가 차단한 스팸 비율을 의미하고, precision은 차단한 메일이 실제로 스팸인 정도를 의미한다.

f1-측정은 lam과 같이 필터의 recall과 precision을 한눈에 볼 수 있는 측정 방법이다.

이러한 측정 방법들이 무엇을 의미하는지 이해하는것은 알고리즘을 만드는 것만큼 중요하다고 생각한다.

아래는 이러한 측정방법으로 논문에서 내가 제안한 스팸 알고리즘에 대한 평가 결과이다.

사용자 삽입 이미지논문에서 캡처한 결과 테이블

결국 72%인데… 이 부분은 학습데이터의 질에 따라 그리고 여러 파라메터의 값에 따라 충분히 바뀔만한 부분이고 위와같이 모든 항목에 대해서 성능향상이 있었다는 것은 시사하는 바가 크다고 생각한다.
위 방법들 말고 다른 클러스터링 알고리즘도 쓰고 싶었는데 사실 이것들을 구현할 만한 시간이 없었다.

툴을 안쓰고 왜 직접 구현하느냐 할 수도 있지만… 식을 이해하고 구현하며 직접 데이터를 넣어보고 결과를 보는 과정에서 결과에 대한 안목이 달라진다고 해야할까?
그리고 그런 알고리즘에 대한 안목을 기반으로 데이터를 분석하면서 새로운 논문(아이디어) 꺼리들이 나오기 때문이다.
그것 때문에 항상 직접 구현해보는거다.

위의 결과가 말해주듯이 학습 알고리즘 만으로는 스팸을 100% 차단하기는 힘들다는 것이다. 여러가지 방법들이 병행이 되었을때 스팸을 효율적으로 차단이 가능하겠다.

CC BY-NC 4.0 스팸 클러스터 알고리즘 평가 방법과 논문 실험 결과 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.