Wie geht der naive Bayes-Klassifikator mit fehlenden Daten im Training um?


7

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?


1
Vielleicht ist Laplace Smoothing das, wonach Sie suchen? en.wikipedia.org/wiki/Additive_smoothing
Regenschein

Bitte beachten Sie, dass sich 'fehlender Wert' von 'Nullwahrscheinlichkeit' unterscheidet. Nullwahrscheinlichkeit bedeutet, dass wir den Wert kennen und er Null ist. Ein fehlender Wert bedeutet jedoch, dass wir die Wahrscheinlichkeit nicht kennen. Es könnte Null sein. Es könnte aber auch 0,75 oder 0,3 oder ein beliebiger Wert zwischen 0 und 1 sein. Aber das wissen wir einfach nicht. Und wir verwenden die Laplace-Glättung, um das Nullwahrscheinlichkeitsproblem zu lösen. Wertproblem nicht fehlen. Bei Problemen mit fehlenden Werten ignorieren wir einfach dieses Attribut wie in der obigen Antwort angegeben.
Kavin Ranawella

Antworten:


10

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

  1. Datensätze mit fehlenden Werten weglassen,
  2. Lassen Sie nur die fehlenden Attribute weg.

Ich werde das oben verlinkte Beispiel verwenden, um diese beiden Ansätze zu demonstrieren. Angenommen, wir fügen diesem Beispiel einen weiteren Trainingsdatensatz hinzu.

Outlook  Temperature  Humidity   Windy   Play
-------  -----------  --------   -----   ----
rainy    cool        normal    TRUE    no
rainy    mild        high      TRUE    no
sunny    hot         high      FALSE   no
sunny    hot         high      TRUE    no
sunny    mild        high      FALSE   no
overcast cool        normal    TRUE    yes
overcast hot         high      FALSE   yes
overcast hot         normal    FALSE   yes
overcast mild        high      TRUE    yes
rainy    cool        normal    FALSE   yes
rainy    mild        high      FALSE   yes
rainy    mild        normal    FALSE   yes
sunny    cool        normal    FALSE   yes
sunny    mild        normal    TRUE    yes
NA       hot         normal    FALSE   yes
  1. Wenn wir den letzten Datensatz aufgrund des fehlenden outlookWerts weglassen , haben wir genau das gleiche trainierte Modell wie im Link beschrieben.

  2. Wir könnten auch alle Informationen aus diesem Datensatz verwenden. Wir könnten das Attribut einfach outlookaus diesem Datensatz weglassen . Dies würde die folgende aktualisierte Tabelle ergeben.

           Ausblick Temperatur Luftfeuchtigkeit   
=================== ====================================== ====  
          Ja Nein Ja Nein Ja Nein 
Sonnig 2 3 Heiß 3 2 Hoch 3 4
Bedeckt 4 0 Mild 4 2 Normal 7 1 
Regnerisch 3 2 Cool 3 1
          ----------- --------- ---------- 
Sonnig 2/9 3/5 Heiß 3/10 2/5 Hoch 3/10 4/5 
Bedeckt 4/9 0/5 Mild 4/10 2/5 Normal 7/10 1/5
Regnerisch 3/9 2/5 Cool 3/10 1/5


            Windiges Spiel
================= ========
      Ja Nein Ja Nein
Falsch 7 2 10 5
Richtig 3 3
      ---------- ----------
Falsch 7/10 2/5 10/15 5/15
Richtig 3/10 3/5

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 e1071hat die Implementierung von naiveBayes im R-Paket die Option, na.actiondie auf na.omit oder na.pass gesetzt werden kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.