Alexander Brock: Artikel-Review: Bayesscher Spam-Filter für Weblogs

Beitrag lesen

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

0 56

Artikel-Review: Bayesscher Spam-Filter für Weblogs

Alexander Brock
  • programmiertechnik
  1. 0
    Felix Riesterer
    1. 0
      Mathias Brodala
      1. 0
        Alexander Brock
        1. 0
          Mathias Brodala
          1. 0
            Alexander Brock
  2. 1
    Robert Bienert
    1. 0
      Alexander Brock
      1. 1

        kleine anmerkung zum multiplikations-zeichen

        seth_not@home
        • sonstiges
        1. 0
          Alexander Brock
  3. 6
    Vinzenz Mai
    1. 1
      seth
      1. 0
        Alexander Brock
        1. 1
          seth_not@home
        2. 1
          Blaubart
          1. 1

            kleine anmerkung zur kommasetzung

            seth_not@home
            1. 1
              Auge
              1. 0
                seth
                • sonstiges
                1. 0
                  Auge
                  1. 0

                    ole, ole, metadiskussionen ueber komma-diskussionen

                    seth
                    1. 0

                      "ole, ole" ... die alten Schweden, die!

                      Auge
      2. 1
        Blaubart
        1. 1
          seth_not@home
          1. 1
            Blaubart
    2. 0
      Alexander Brock
      1. 3
        Vinzenz Mai
  4. 2
    seth
    1. 0
      Alexander Brock
      1. 1
        seth_not@home
        1. 0
          Alexander Brock
          1. 1
            seth
            1. 0
              Alexander Brock
              1. 1
                seth_not@home
                1. 0
                  Alexander Brock
                  1. 1
                    seth_not@home
                    1. 0
                      Alexander Brock
                      1. 0
                        seth_not@home
                        1. 0
                          Alexander Brock
                          1. 1
                            seth
                            1. 0
                              Alexander Brock
  5. 0
    Alexander Brock
    1. 1
      Robert Bienert
      1. 0
        Alexander Brock
        1. 1
          Robert Bienert
          1. 0
            Alexander Brock
            1. 1
              seth
              1. 0
                Alexander Brock
                1. 1
                  seth
                  1. 0
                    Alexander Brock
                  2. 0
                    O'Brien
    2. 1
      Der Dicki
      1. 0
        Alexander Brock
    3. 0
      Christian Seiler
      1. 0
        Alexander Brock
        1. 0
          Christian Seiler
          1. 0
            Alexander Brock