Zum Inhalt springen

Was ist der Naive Bayes Algorithmus?

Der Naive Bayes Algorithmus ist eine Klassifizierungsmethode, die auf dem sogenannten Bayes Theorem beruht. Im Kern geht er davon aus, dass das Auftreten eines Features völlig unkorreliert mit dem Auftreten eines anderen Features innerhalb der Klasse ist.

Der Algorithmus ist deshalb naiv, weil er die Features komplett unabhängig zueinander betrachtet und alle zu der Wahrscheinlichkeit der Klasse beitragen. Ein einfaches Beispiel hierzu: Ein Auto zeichnet sich dadurch aus, dass es vier Räder hat, etwa 4-5 Meter lang ist und fahren kann. Alle diese drei Features tragen unabhängig voneinander dazu dabei, dass dieser Gegenstand ein Auto ist.

Funktionsweise des Algorithmus

Der Naive-Bayes Algorithmus basiert auf dem Bayes Theorem. Es beschreibt eine Formel zur Berechnung der bedingten Wahrscheinlichkeit P(A|B) oder in Worten: Wie hoch ist die Wahrscheinlichkeit, dass das Ereignis A eintritt, wenn Ereignis B eingetreten ist. Als Beispiel: Wie wahrscheinlich ist es, dass ich an Corona erkrankt bin (= Ereignis A), wenn mein Schnelltest positiv ist (= Ereignis B).

Diese bedingte Wahrscheinlichkeit lässt sich laut Bayes mithilfe der folgenden Formel berechnen:

\(\) \[P(A|B) = \frac{P(B|A) * P(A)}{P(B)} \]

  • P(B|A) = Wahrscheinlichkeit, dass Ereignis B eintritt, wenn Ereignis A schon eingetreten ist
  • P(A) = Wahrscheinlichkeit, dass Ereignis A eintritt
  • P(B) = Wahrscheinlichkeit, dass Ereignis B eintritt

Warum sollten wir diese Formel nutzen? Kommen wir zurück zu unserem Beispiel mit dem positiven Test und der Corona Erkrankung. Die bedingte Wahrscheinlichkeit P(A|B) kann ich nicht wissen und nur über ein aufwendiges Experiment herausfinden. Die umgedrehte Wahrscheinlichkeit P(B|A) hingegen ist einfacher herauszufinden. In Worten bedeutet sie: Wie wahrscheinlich ist es, dass eine an Corona erkrankte Person einen positiven Schnelltest vorweist.

Diese Wahrscheinlichkeit lässt sich verhältnismäßig einfach herausfinden, indem man nachweislich erkrankte Personen einen Schnelltest durchführen lässt und dann das Verhältnis errechnet, wie viele der Test auch wirklich positiv waren. Die Wahrscheinlichkeiten P(A) und P(B) lassen sich ähnlich einfach herausfinden. Die Formel ermöglicht es dann die bedingte Wahrscheinlichkeit P(A|B) einfach zu errechnen.

Wenn wir nur eine Eigenschaft haben, ist damit auch schon der komplette Naive Bayes Algorithmus erklärt. Mit einem Feature für die bedingte Wahrscheinlichkeit P(x | K) für verschiedene Klassen errechnet und die Klasse mit der höchsten Wahrscheinlichkeit gewinnt. Für unser Beispiel bedeutet das, es werden die beident bedingten Wahrscheinlichkeiten P(Person ist krank | Test ist positiv) und P(Person ist gesund | Test ist negativ) mithilfe des Bayes Theorem berechnet und die Klassifizierung erfolgt für die Klasse mit der höheren Wahrscheinlichkeit.

Wenn unser Datensatz aus mehr als nur einem Feature besteht gehen wir ähnlich vor und berechnen für jede Kombination aus Feature x und Klasse K die bedingte Wahrscheinlichkeit. Dann multiplizieren wir alle Wahrscheinlichkeiten für ein Feature. Die Klasse K, die dann das höchste Produkt an Wahrscheinlichkeiten hat, ist die entsprechende Klasse des Datensatzes.

Vor- und Nachteile des Naive-Bayes Algorithmus

Der Naive Bayes Algorithmus ist ein beliebter Einstieg in einen Klassifizierungsanwendung, da er sehr einfach und schnell zu trainieren ist und teilweise auch gute Ergebnisse liefern kann. Sollte die Annahme der Unabhängigkeit der einzelnen Features gegeben sein, performt er sogar besser als vergleichbare Klassifizierungsmodelle, wie eine logistische Regression, und benötigt weniger Daten zum Trainieren.

Obwohl der Naive Bayes Algorithmus bereits mit wenigen Daten gute Ergebnisse erzielen kann, benötigen wir so viele Daten, dass jede Klasse mindestens einmal im Trainingsdatensatz erscheint. Ansonsten wird der Naive Bayes Classifier für die Kategorie im Testdatensatz eine Wahrscheinlichkeit von 0 als Ergebnis liefern. Außerdem ist es in der Realität sehr unwahrscheinlich, dass alle Inputvariablen komplett unabhängig voneinander sind, was sich zudem auch nur sehr schwierig testen lässt.

Das solltest Du mitnehmen

  • Der Naive Bayes Algorithmus ist eine einfache Methode, um Daten zu klassifizieren.
  • Er basiert auf dem Bayes Theorem und ist naiv, da er davon ausgeht, dass alle Inputvariablen und deren Ausprägung unabhängig voneinander sind.
  • Der Naive Bayes Algorithmus lässt sich relativ schnell und einfach trainieren, liefert aber in vielen Fällen keine guten Ergebnisse, da die Annahme der Unabhängigkeit der Variablen verletzt ist.

Andere Beiträge zum Thema Naive Bayes

  • Scikit-Learn bietet einige Beispiele und Programmieranleitungen für den Naive Bayes Algorithmus in Python.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner