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.

Wie funktioniert der 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 beiden 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.

Naive Bayes Klassifizierung mit Formen
Einfache Darstellung der Naive Bayes Klassifizierung

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.

Was sind die 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.

Welche Anwendungen nutzen den Naive Bayes Algorithmus?

Im Bereich des Machine Learnings wird Naive Bayes als Klassifikationsmodell eingesetzt, also zur Einordnung eines Datensatzes in eine bestimmte Klasse. Für diese Modelle gibt es verschiedene, konkrete Anwendungen für die auch Naive Bayes genutzt wird:

Natural Language Processing

In diesem Bereich kann das Modell eingesetzt werden, um einen Textabschnitt einer bestimmten Klasse zuzuordnen. E-Mail Programme sind beispielsweise daran interessiert, eingehende Mails als „Spam“ oder „Nicht Spam“ zu klassifizieren. Dazu werden dann die bedingten Wahrscheinlichkeiten von einzelnen Wörtern berechnet und mit der Klasse abgeglichen. Das gleiche Verfahren kann auch genutzt werden, um Social Media Kommentare als „positiv“ oder „negativ“ zu klassifizieren.

Obwohl Naive Bayes für diese Anwendungen im Textbereich einen schnellen und einfachen Ansatz bietet, gibt es andere Modelle, wie beispielsweise Transformer, die deutlich bessere Ergebnisse liefern. Das Naive Bayes Modell berücksichtigt nämlich keine Reihenfolge von Wörtern oder eine gewisse Anordnung. Wenn ich beispielsweise sage „Ich finde das Produkt nicht gut.“ ist das wahrscheinlich keine positive Produktrezension, nur weil das Wort „gut“ darin vorkommt.

Klassifizierung von Kreditrisiken

Für Banken ist der Ausfall von Krediten ein immenses Risiko, da sie große Summen an Geld verlieren, wenn ein Kunde den Kredit nicht mehr bezahlen kann. Deshalb wird viel Arbeit in Modelle gesteckt, die je nach Kunde das individuelle Ausfallrisiko errechnen können. Das ist im Endeffekt auch eine Klassifizierung bei der der Kunde entweder der Gruppe „Kreditrückzahlung“ oder „Kreditausfall“ zugeordnet wird. Dazu werden einige spezifische Eigenschaften, wie beispielsweise Kredithöhe, Einkommen oder Anzahl vorheriger Kredite genutzt. Mithilfe von Naive Bayes kann daraus ein zuverlässiges Klassifizierungsmodell trainiert werden.

Vorhersage von medizinischer Behandlung

In der Medizin muss ein Arzt entscheiden, welche Behandlung und welche Medikamente für den einzelnen Patienten und dessen Krankheitsbild am vielversprechendsten sind und die höchste Wahrscheinlichkeit besitzen den Patienten wieder gesund zu machen. Als Unterstützung kann dazu ein Naive Bayes Klassifizierungsmodell trainiert werden, das abhängig von Eigenschaften des Gesundheitszustands, wie Blutdruck, Wohlbefinden oder Symptome, sowie der möglichen Behandlung (Medikamente) eine Wahrscheinlichkeit berechnet, dass der Kunde wieder gesund wird oder eben nicht. Die Ergebnisse des Modells kann wiederum der Arzt in seine Entscheidung mit einbeziehen.

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