Naive Bayes geht offenbar unterschiedlich mit fehlenden Daten um, je nachdem, ob sie in Trainings- oder Test- / Klassifizierungsinstanzen vorhanden sind.
Bei der Klassifizierung von Instanzen wird das Attribut mit dem fehlenden Wert einfach nicht in die Wahrscheinlichkeitsberechnung einbezogen ( http://www.inf.ed.ac.uk/teaching/courses/iaml/slides/naive-2x2.pdf ).
Im Training "ist die Instanz [mit den fehlenden Daten] nicht in der Häufigkeitszählung für die Kombination von Attributwert und Klasse enthalten." ( http://www.csee.wvu.edu/~timm/cs591o/old/BasicMethods.html )
Bedeutet das, dass bestimmte Trainingsaufzeichnungen einfach nicht in der Trainingsphase enthalten sind? Oder bedeutet es etwas anderes?
Antworten:
Im Allgemeinen haben Sie die Wahl, wenn Sie mit fehlenden Werten umgehen, wenn Sie einen naiven Bayes-Klassifikator trainieren. Sie können entweder wählen
Ich werde das oben verlinkte Beispiel verwenden, um diese beiden Ansätze zu demonstrieren. Angenommen, wir fügen diesem Beispiel einen weiteren Trainingsdatensatz hinzu.
Wenn wir den letzten Datensatz aufgrund des fehlenden
outlook
Werts weglassen , haben wir genau das gleiche trainierte Modell wie im Link beschrieben.Wir könnten auch alle Informationen aus diesem Datensatz verwenden. Wir könnten das Attribut einfach
outlook
aus diesem Datensatz weglassen . Dies würde die folgende aktualisierte Tabelle ergeben.Beachten Sie, dass es für jedes Attribut 15 Beobachtungen gibt, außer für das
Outlook
, das nur 14 hat. Dies liegt daran, dass dieser Wert für den letzten Datensatz nicht verfügbar war. Alle weiteren Entwicklungen würden fortgesetzt, wie im verlinkten Artikel beschrieben.Zum Beispiel
e1071
hat die Implementierung von naiveBayes im R-Paket die Option,na.action
die auf na.omit oder na.pass gesetzt werden kann.quelle