[Python-Dev] spambayes status

Tim Peters tim.one@comcast.net
Sun, 01 Sep 2002 22:43:01 -0400


This is a multi-part message in MIME format.

--Boundary_(ID_Uqs78No0Dj49zOTKCoTyzA)
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 7BIT

I spent an enormous amount of time this weekend running tests against
various changes -- a "1% inspiration, 99% perspiration" kind of thing.
There are lots of words about the changes (both good and bad) in the comment
blocks and checkin msgs.  The biggest "conceptual" change is that I'm now
using (but only using) the Subject and From lines from the headers (my
earlier belief that the ham corpora Subject lines were too corrupted by
Mailman decorations turned out to be wrong).  Adding Subject lines gave a
remarkably small improvement, btw.  Most changes I tried either didn't
matter, or hurt.  Approximately 70 more blatant spams in the ham corpora
were identified and replaced with (randomly selected) legitimate msgs.

The f-p rate is too low now to measure changes with confidence.  Best guess
I can make from the evidence is that it's below 0.05% now.  The false
negative rate has improved more, and there's still plenty of those (so it's
still easy to be confident about whether changes do or don't help that).

Across all 20 runs (each training on 4000 ham + about 2750 spam, then
predicting against a different set with the same number of each), these are
the false positive and negative rates now (percentages; note that 0.025% is
a single message in the f-p column; a single msg in the f-n column is about
0.036%):

      f-p     f-n
    0.000   1.236
    0.000   1.164
    0.050   1.454
    0.000   1.599
    0.025   1.527
    0.025   1.236
    0.050   1.163
    0.025   1.309
    0.025   1.891
    0.000   1.418
    0.075   1.745
    0.050   1.708
    0.025   1.491
    0.000   0.836
    0.050   1.091
    0.025   1.309
    0.025   1.491
    0.000   1.127
    0.025   1.309
    0.050   1.636

The aggregate number of unique f-p across all runs is down to 8.
The aggregate number of unique f-n across all runs is 336.

The 8 ham messages for which at least one run claimed it was spam are
attached.  Note that I finally removed the "If AOL were a car" spam from the
good corpus; while it may or may not be amusing, it *was* automated bulk
email, even to the extent of including large blocks of random characters at
the end.  The message consisting almost entirely of quoting a Nigerian scam
message looks like it would be a "false postitive" under any scheme worth
using, but I left it in the good corpus (so it's still an f-p here), because
it wasn't bulk email (the original msg was, but the reply was not).

--Boundary_(ID_Uqs78No0Dj49zOTKCoTyzA)
Content-type: application/x-zip-compressed; name=fp.zip
Content-transfer-encoding: base64
Content-disposition: attachment; filename=fp.zip

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
eHRQSwUGAAAAAAEAAQA0AAAAFRwAAAAA

--Boundary_(ID_Uqs78No0Dj49zOTKCoTyzA)--