[Mahout] Recall And Precision

IRStats의 메서드 중 getRecall이라는 메서드가 반환하는 값의 의미를 찾기 위해 wiki를  찾아보니

패턴 인식과 정보 검색에서 다루는 precision과 recall의 차이점을 알고 이해할 필요가 있다.

w1(긍정[positive])과 w2(부정[negative])에 속한 데이터를 분류기(검색)에 넣고 돌린 결과 값에 대한 정의는 다음가 같다.

tp (true positive) correct result
-> w1을 w1으로 올바르게 분류한 샘플을 참 긍정

fp (false posivite) unexpected result
-> w2를 w1으로 틀리게 분류한 샘플을 거짓 긍정

fn (false negative) missing result
-> w1을 w2로 틀리게 분류한 샘플을 거짓 부정

tn (true negative) correct absence of result
-> w2를 w2로 옳게 분류한 샘플을 참 부정

\text{Precision}=\frac{tp}{tp+fp} \,
-> 올바른 값이 얼마나 나왔냐?
예를 들어 검색 결과가 모두 올바른 값으로 주장하고 있으며 검색 결과 내에서 찾고자 하는 데이터가 얼마나 나왔는가? 이때 정확도라고 표현할 수 있다.(검색은 오직 참값만을 찾는 분류기)

\text{Recall}=\frac{tp}{tp+fn} \,
-> 재현률, 즉 기계학습에서 얼마만큼 분류를 잘 해내었는지에 대한 테스트로
w1에 대한 데이터 셋을 주고 검색을 돌린다면
검색 결과 셋에 포함된 것을 true positive, 검색결과에 제외된 셋을 false negative(즉 w1에 포함되어야 하는 데이터 셋임에도 불구하고 검색에서 제외되었기 때문에)이라 하고
검색결과(tp)를 전체 데이터 셋(w1)로 나눈 비율을 재현률이라 한다.

패턴인식 2장에 보았던 재현률과 정확도를 의미하는 것으로 조각났던 기억의 퍼즐들이 하나씩 맞춰지는 느낌이다.

[Mahout] IR Information retrieval

공부 도중에 IR이라는 단어가 나와 구글을 찾아보니 다음과 같다.

정보 검색….

그러나 내가 대부분 구글에서 찾은 단어는 펀드 관련 Information ratio다…

오픈 소스 코드를 쳐다보고 있노라면 가끔씩 화가 난다.
RecommenderIRStatsEvaluator
(https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.html)

약어도 가려가면서 사용했으면 좋겠다.

[수치해석] 기본 개념 정리

용어

a = ±m · 10^n,  (0.1 <= |m| < 1), n은 정수
m : 가수(man-tissa)
n : 지수(exponent)

지수의 범위

IEEE-754 및 single precision, double precision 참고(컴퓨터 OS bit에 따라 연산 범위가 다를 수 있으니 CAD 개발 또는 이용시 문서 이용하여 계산 범위가 어디까지인지 미리 알아두는 것이 좋다.

underflow : 수가 너무 작어 표현할 수 없는 경우 0으로 처리하고 계산을 진행한다.

overflow : 수가 너무 커서 표현하기 어려울 때 발생하는데 IMSL, NAG 등 대부분의 표준 코드에서 overflow 발생을 방지하고 있다고 한다. Math library를 이용하여 개발할 때 underflow, overflow에 대한 가드(guard)가 있는지 확인해볼 필요가 있다.

끝처리(Round off)
계산상의 오차는 숫자의 끝처리를 chooping(버림)하거나 rounding(반올림)하면서 발생하는데 버림이나 반올림에 의한 오차를 round-off error라고 한다.
chooping은 계산이 빠르다는 장점이 있지만 오차가 반올림보다 크다.