Naive Bayes sollten aufgrund fehlender Funktionen eine Vorhersage generieren (Scikit Learn)

7

Angesichts der Tatsache, dass Naive Bayes die Wahrscheinlichkeit verwendet, um eine Vorhersage zu treffen, und Merkmale als bedingt unabhängig voneinander behandelt, ist es sinnvoll, dass das Modell dennoch eine Vorhersage treffen kann, da einige Merkmale in den Testdaten fehlen.

Ich weiß, dass es üblich ist, fehlende Daten zu unterstellen, aber warum tun Sie dies, wenn Naive Bayes in der Lage sein sollte, eine Vorhersage zu treffen, da einige Funktionen fehlen?

Kann dies in Sci-Kit Learn implementiert werden? Ich habe einen Testsatz mit weniger Funktionen ausprobiert und einen ValueError erhalten, da die Formen nicht ausgerichtet sind.

Theoretisch ist das also möglich, aber ist es beim Scikit-Lernen möglich?

gbhrea
quelle

Antworten:

4

Ihre Frage ist sinnvoll. Die Art und Weise, wie die posteriore Wahrscheinlichkeit im klassischen Naive Bayes-Klassifikator (in sklearn) berechnet wird, entspricht der Summierung der bedingten Wahrscheinlichkeiten aller Merkmale im Datensatz. Obwohl die Features als bedingt unabhängig behandelt werden, werden zum Erlernen der Klassifizierungswahrscheinlichkeit immer alle Features in diesem Setup verwendet. Sobald das Modell gelernt wurde, haben Sie noch alle diese Funktionen, um den Seitenzahn für eine neue Beobachtung zu berechnen. Die bedingte Unabhängigkeit ist nur eine Annahme, die getroffen wird, damit Statistik und Mathematik den Regeln und der Arbeit entsprechen.

Wenn Sie jedoch die Art und Weise, wie der Posterior berechnet wird, leicht ändern, können Sie den Bayes'schen Ansatz verwenden, um Vorhersagen zu treffen, auch wenn bestimmte Merkmale fehlen. Die Verwendung des Bayes'schen Ansatzes zur Vorhersage ohne bestimmte Merkmale ist noch nicht abgeschlossen. Vielleicht möchten Sie einen Blick auf dieses Papier werfen , in dem der Bayes'sche Ansatz auf die Astronomie angewendet wird, um eine Klassifizierung mit fehlenden Werten durchzuführen.

Naive Bayes können leicht in Python implementiert werden, da es sich um eine einfache Berechnung handelt. Das sklearn Naive Bayes unterstützt keine Vorhersagen mit fehlenden Werten und kann schwierig zu implementieren sein, was Sie denken. Vielleicht wäre es besser, einen eigenen Code zu schreiben :)

Arun Aniyan
quelle