On Fri, 2009-10-02 at 00:08 +0200, mouss wrote:
> Karsten Bräckelmann wrote:
> > False positive. Something, that matches (positive) the criterion for a
> > certain test, but should not (false).

I stand to what I said.

> you can certainly devise a system to detect alpha(foo) where alpha is a
> function mapping a Banach space to a Hilbert Space, and define what FP,
> FN, FX mean in the context you consider. you can also say "let PI=69,
> ... ". but conventions are here for a reason. they allow us to
> understand each others more easily. the fact that children of today can
> solve computation problems that "great scientists" of the old times
> couldn't handle is thanks to conventions (think of a/b * c/d =
> (a*c)/(b*d), which looks trivial today, but wasn't before).
> 
> when talking about spam or intrusion detection, FN means "missing" and
> FP means "false alarm". if we allow defining FN and FP differently, then
> we'll need to rewrite a lot of books, reports, articles, ...

IFF you are talking about the black box that spam detection is, that is
true.

If you are talking about a rule like FORGED_MUA_OUTLOOK, it appears to
be that simple. However, it is not. You are looking at a single test,
which -- if positive -- either is correct or wrong.

Same for RCVD_IN_DNSWL. If it positively matches, it either it is
correct, or wrong. A false positive is a match, that is wrong. No matter
the score you assign the test.


This concept is NOT specific to spam detection, or even computer
science. As a matter of fact, when I first really grasped the concept, a
medical scientist explained it to me.

Yes, a FP for a rule that identifies *ham* actually evaluated positive
on a spam. It only appears to be spam centric on this list, cause it is
mainly dedicated to identifying spam, not ham.

You might want to ask wikipedia as well. And don't focus on the spam
filtering *example*, which again exclusively talks about a rule
identifying spam. Not ham.


-- 
char *t="\10pse\0r\0dtu...@ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4";
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1:
(c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}

Reply via email to