Here's another way to use my evolution filtering idea with SA.
Get rid of all the rule scores and just make a list of the rule names. From the rule names generate all combinations of those rule names up to 4 rule names in a fingerprint and learn those fingerprints as either ham or spam. sort of like this:
“A” “AB” “B” “C” “AC” “ABC” “BC” “D” “AD” “ABD” “BD” “CD” “ACD” “ABCD” “BCD” “E” “AE” “BE” “CE” “ACE” “BCE” “DE” “ADE” “ABDE” “BDE” “CDE” “ACDE” “ABCDE” “BCDE”
Then - when a new message comes in you make the same combo of fingerprints from the rule names and then use my formula.
card(Test intersect Spam diff Ham) - card(Test Intersect Ham diff Spam) Positive result = spam Negative result = ham