Hallo Forum,
V ist aus dem intervall [0,\inf), nicht nur aus dem intervall [0,1].
bei V>1 ist die wahrscheinlichkeit groesser, dass es spam ist.
bei V<1 ist die wahrscheinlichkeit groesser, dass es ham ist.
V=1 macht einen nicht schlauer.
Ich hab das jetzt ausprobiert, die allermeisten Werte liegen zwischen null und eins. Alle Ham-Mails haben einen Wert von 0 oder 0,04.
Ich berechne also für meine Test-Daten die Wahrscheinlichkeiten und lade das hundertfachefache gerundet als Integer in zwei Arrays, eines für Ham und eines für Spam und bekomme von array_count_values die Verteilung.
Da kommt dann in zweierlei Hinsicht Müll raus:
Erstens kann (int)round(100*exp($irgendwas)) niemals eine negative zahl ergeben (dachte ich zumindest).
Zweitens kommt die Spam-Wahrscheinlichkeit 0 in den Spams angeblich in 99% aller Fälle vor. Das widerspricht aber meinem Ergebnis von 1.4% false negative.
Ich habe den Quellcode meiner Test-Suite mal gepostet:
http://nopaste.php-q.net/277083
Spam Stats:
Array
(
[-1930988544] => 1
[-1903352726] => 1
[-1882712973] => 1
[-1781909097] => 1
[-1680121282] => 1
[-1275730988] => 1
[-1144230406] => 1
[-1129315584] => 1
[-972717902] => 1
[-798831446] => 1
[-703784146] => 1
[-541185398] => 1
[-325038144] => 1
[-71680000] => 1
[0] => 2034
[1] => 2
[8] => 1
[39] => 1
[213] => 1
[276] => 1
[217644] => 1
[230607] => 1
[651551] => 1
[12069391] => 1
[17116193] => 1
[136575566] => 1
[204607518] => 1
[389060608] => 1
[754195036] => 1
[881556480] => 1
[1058403544] => 1
[1108799631] => 1
[1255696640] => 1
[1444003672] => 1
[1559565312] => 1
[1634016256] => 1
[1665004544] => 1
[1670903808] => 1
[1928051234] => 1
[1967273984] => 1
[2081923517] => 1
)
Ham Stats:
Array
(
[0] => 1365
[4] => 1
)
Gruß
Alexander Brock