Ich verwende einen naiven Bayes-Klassifikator, um zwischen zwei Datengruppen zu klassifizieren. Eine Gruppe der Daten ist viel größer als die andere (über 4 Mal). Ich verwende die vorherige Wahrscheinlichkeit jeder Gruppe im Klassifikator.
Das Problem ist, dass das Ergebnis, das ich erhalte, eine wahre positive Rate von 0% und eine falsche positive Rate von 0% aufweist. Ich habe die gleichen Ergebnisse erzielt, als ich die Werte vor 0,5 und 0,5 eingestellt habe.
Wie kann ich meine Schwelle auf etwas Besseres einstellen, um ausgewogenere Ergebnisse zu erzielen?
Ich hatte ein ähnliches Problem bei der Verwendung des Logistic Regression-Klassifikators. Ich habe es gelöst, indem ich den vorherigen Term von der Verzerrung abgezogen habe.
Wenn ich Fisher Linear Discriminant für diese Daten verwende, erhalte ich gute Ergebnisse mit dem in der Mitte festgelegten Schwellenwert.
Ich gehe davon aus, dass es eine gemeinsame Lösung für dieses Problem gibt, ich konnte sie einfach nicht finden.
UPDATE: Ich habe gerade bemerkt, dass der Klassifikator überpasst. Die Leistung am Trainingsset ist perfekt (100% korrekt).
Wenn ich gleiche Gruppen verwende, beginnt der Klassifizierer auch mit der Klassifizierung in die "kleine" Gruppe, aber die Leistung ist ziemlich schlecht (schlechter als FLD oder LR).
UPDATE2: Ich denke, das Problem war, dass ich die vollständige Kovarianzmatrix verwendet habe. Das Laufen mit diagonaler Kovarianzmatrix führte zu "ausgeglicheneren" Ergebnissen.
Antworten:
Das Zuweisen aller Muster zur negativen Klasse ist sicherlich kein "seltsames Ergebnis". Es kann sein, dass der optimale Bayes-Klassifikator immer alle Muster als zur Mehrheitsklasse gehörend klassifiziert. In diesem Fall tut Ihr Klassifikator genau das, was er tun sollte. Wenn die Dichte der zur positiven Klasse gehörenden Muster niemals die Dichte der zur negativen Klasse gehörenden Muster überschreitet, ist die negative Klasse unabhängig von den Attributwerten wahrscheinlicher.
Unter solchen Umständen ist es wichtig, die relative Bedeutung falsch positiver und falsch negativer Fehler zu berücksichtigen. In der Praxis ist es selten, dass die Kosten der beiden verschiedenen Fehlertypen gleich sind. Bestimmen Sie also den Verlust für falsch positive und falsch negative Fehler und berücksichtigen Sie diese bei der Festlegung der Schwellenwahrscheinlichkeit (unterschiedliche Fehlklassifizierungskosten entsprechen der Änderung der vorherigen Wahrscheinlichkeiten, sodass dies für naive Bayes einfach zu implementieren ist). Ich würde empfehlen, die Prioritäten zu optimieren, um die Kreuzvalidierungsschätzung des Verlusts zu minimieren (unter Berücksichtigung Ihrer ungleichen Fehlklassifizierungskosten).
Wenn Ihre Fehlklassifizierungskosten gleich sind und Ihre Schulungssätze für die Betriebsbedingungen repräsentativ sind, ist es möglich, dass Sie bereits über den besten NB-Klassifizierer verfügen, sofern Ihre Implementierung korrekt ist.
quelle
Vergrößern Sie die kleinere Datengruppe durch Berechnung, um sie an die große Gruppe anzupassen. Dadurch werden die Daten der kleineren Gruppe gestreckt, es wird jedoch eine gleichmäßigere Berechnung ermöglicht.
Wenn Sie immer noch seltsame Ergebnisse erhalten, wie Sie es derzeit tun, überprüfen Sie Ihre gesamte Implementierung von Anfang an, um einen (wahrscheinlich einfachen) Fehler zu finden.
quelle