Ich verwende den Ruby-Klassifikator-Edelstein , dessen Klassifizierungsmethode die Werte für einen gegebenen String zurückgibt, der gegen das trainierte Modell klassifiziert wurde.
Ist der Score ein Prozentsatz? Wenn ja, ist die maximale Differenz 100 Punkte?
Es ist der Logarithmus einer Wahrscheinlichkeit. Bei einem großen trainierten Satz sind die tatsächlichen Wahrscheinlichkeiten sehr kleine Zahlen, so dass die Logarithmen einfacher zu vergleichen sind. Theoretisch reichen die Werte von infinitesimal nahe bei Null bis zu einer negativen Unendlichkeit. 10**score * 100.0
gibt Ihnen die tatsächliche Wahrscheinlichkeit, die tatsächlich eine maximale Differenz von 100 hat.
Um die Wahrscheinlichkeit eines typischen naiven Bayes-Klassifikators zu berechnen, wobei b die Basis ist, ist es b ^ score / (1 + b ^ score). Dies ist das inverse logit (http://en.wikipedia.org/wiki/Logit). Angesichts der Unabhängigkeitsannahmen des NBC sind diese Werte jedoch tendenziell zu hoch oder zu niedrig und die auf diese Weise berechneten Wahrscheinlichkeiten werden sich an den Grenzen ansammeln . Es ist besser, die Scores in einem Holdout-Set zu berechnen und eine logistische Regression des genauen (1 oder 0) Scores durchzuführen, um ein besseres Gefühl für die Beziehung zwischen Score und Wahrscheinlichkeit zu erhalten.
Von einem Jason Rennie-Papier: 2.7 Naive Bayes-Ausgaben sind oft überzeichnet Textdatenbanken haben häufig 10.000 bis 100.000 verschiedene Vokabeln; Dokumente enthalten oft 100 oder mehr Begriffe. Daher gibt es eine große Chance zur Duplizierung. Um ein Gefühl dafür zu bekommen, wie viel Duplikation ist, haben wir ein MAP Naive Bayes trainiert Modell mit 80% der 20 Newsgroups-Dokumente. Wir produzierten p (cjd; D) (posterior) Werte auf den restlichen 20% der Daten und zeigen Statistiken über maxc p (cjd; D) in Tabelle 2.3. Die Werte sind stark überzeichnet. 60% der Testdokumente sind zugeordnet a posterior von 1, wenn auf 9 Dezimalstellen gerundet. Im Gegensatz zur logistischen Regression, naiv Bayes ist nicht optimiert, um vernünftige Wahrscheinlichkeitswerte zu erzeugen. Logistische Regression führt eine gemeinsame Optimierung der linearen Koeffizienten durch und konvergiert zur entsprechenden Wahrscheinlichkeitswerte mit erfolgreichen Trainingsdaten. Naive Bayes optimiert die Koecients Einer nach dem anderen. Es erzeugt nur dann realistische Ergebnisse, wenn die Unabhängigkeit angenommen wird ist wahr. Wenn die Funktionen wichtige doppelte Informationen enthalten (wie es normalerweise der Fall ist) der Fall mit Text), die von Naive Bayes zur Verfügung gestellten Seitenzähne sind stark überzeichnet.
Tags und Links ruby bayesian bayesian-networks