Naive Bayes (Klassifikation)
Bayes plus eine fragwürdige Unabhängigkeitsannahme — und es funktioniert trotzdem.
Was ist Naive Bayes?
Stell dir vor, du bist ein erfahrener Postsortierer. Nach Jahren weißt du: Briefe mit 'GRATIS' und 'GEWINN' landen meist im Papierkorb.
Naive Bayes funktioniert genauso: Der Algorithmus lernt, welche Wörter typisch für Spam sind und welche für normale E-Mails. Bei jeder neuen E-Mail prüft er die Wörter und berechnet: Wie wahrscheinlich ist das Spam?
Das 'Naive' bedeutet: Wir tun so, als hätten die Wörter nichts miteinander zu tun. Das ist zwar nicht ganz korrekt, funktioniert aber erstaunlich gut!
Analogie:
Stell dir vor, du bist ein erfahrener Postsortierer. Nach Jahren weißt du: Briefe mit 'GRATIS' und 'GEWINN' landen meist im Papierkorb.
Naive Bayes funktioniert genauso: Der Algorithmus lernt, welche Wörter typisch für Spam sind und welche für normale E-Mails. Bei jeder neuen E-Mail prüft er die Wörter und berechnet: Wie wahrscheinlich ist das Spam?
Das 'Naive' bedeutet: Wir tun so, als hätten die Wörter nichts miteinander zu tun. Das ist zwar nicht ganz korrekt, funktioniert aber erstaunlich gut!
Definition:
Der Naive Bayes Klassifikator ist ein probabilistischer Algorithmus basierend auf dem Bayes'schen Theorem (Thomas Bayes, 1763).
P(Spam|Wörter) = P(Wörter|Spam) × P(Spam) / P(Wörter)
Die 'naive' Annahme der bedingten Unabhängigkeit ermöglicht die Faktorisierung der Likelihood: P(W₁,W₂,...|C) = ∏ P(Wᵢ|C). Trotz dieser vereinfachenden Annahme erreicht der Klassifikator in der Praxis hohe Genauigkeit bei Textklassifikation.
So funktioniert die Demo
Diese Demo zeigt, wie ein Naive Bayes Spam-Filter E-Mails Wort für Wort analysiert. Beobachte, wie sich die Spam-Wahrscheinlichkeit bei jedem Wort verändert.
Wichtige Begriffe
- Prior (Vorwissen):Die Basis-Wahrscheinlichkeit, dass eine beliebige E-Mail Spam ist - bevor wir sie lesen.
- Likelihood (Beweiskraft):Wie typisch ist jedes Wort für Spam vs. normale E-Mails?
- Posterior (Endergebnis):Die aktualisierte Spam-Wahrscheinlichkeit, nachdem wir die Wörter analysiert haben.
Die 'Naive' Annahme
Wir tun so, als wären alle Wörter voneinander unabhängig. 'GRATIS' und 'GEWINN' werden separat betrachtet, obwohl sie oft zusammen auftreten. Diese Vereinfachung macht die Berechnung einfach und funktioniert trotzdem gut.
Warum heißt es 'Spam'?
Der Begriff stammt von einem Sketch der britischen Komikertruppe Monty Python aus dem Jahr 1970. In einem Café wiederholt eine Gruppe Wikinger ständig das Wort 'SPAM' (eine Dosenfleischmarke), bis es alle anderen Gespräche übertönt. Genau wie im Sketch überschwemmen Spam-E-Mails unsere Postfächer mit unerwünschten, sich wiederholenden Nachrichten.
Trainiere deinen eigenen Spam-Filter
Die Wahrscheinlichkeiten oben sind nicht magisch - sie wurden aus echten E-Mails gelernt. Probier es selbst: Sortiere die Beispiele unten in Spam oder Ham. Dein Filter baut sich aus reinen Wort-Zählungen auf, und du kannst ihn anschließend testen.
GLÜCKWUNSCH! Du hast 500.000 Euro im Lotto gewonnen! Klicke jetzt sofort hier um deinen Gewinn abzuholen - dringend, nur heute kostenlos!
Mein Krypto-Roboter macht 10000 Euro pro Tag - garantiert! Klicke sofort für gratis Zugang. Geheimnis nicht weitersagen!
Exklusives Angebot - nur heute! Verdiene Millionen mit unserem geheimen System. Sofort kostenlos starten und Geld sichern!
Dringend: Klicken Sie hier für kostenlosen Kredit. Garantiert ohne Schufa, sofort verfügbar. Limitiertes Angebot!
Hallo Team, das Meeting morgen um 10 Uhr ist bestätigt. Bitte den Bericht zum Projekt vorbereiten. Viele Grüße
Hallo, kurze Frage zum Projekt: Können wir morgen einen Termin einplanen? Bitte gib kurz Bescheid. Danke!
Liebes Team, der Bericht für den Kunden liegt im Anhang. Besprechung dazu am Mittwoch im Büro. Grüße aus der Buchhaltung.
Hallo Kollege, der Chef fragt nach dem Dokument. Kannst du es bis morgen vorbereiten? Danke für deine Arbeit!
Spam-Detektor
Was die Wahrscheinlichkeits-Reise zeigt
Der Spam-O-Meter ist eine liegende Skala: links steht kein Spam, rechts steht Spam. Ein runder Marker wandert darauf, während der Filter die Nachricht Wort für Wort liest.
- Was du siehst
- Einen waagerechten Balken, links grün für harmlose Post, rechts rot für Spam, dazwischen eine Skala von 0 bis 100 Prozent. Darauf sitzt ein runder Marker, der seine Farbe von Grün über Gelb bis Rot wechselt, je nachdem wo er gerade steht.
- Was passiert
- Die Wörter der Nachricht ziehen nacheinander durch die Prüfung. Jedes Wort schiebt den Marker ein Stück nach rechts, wenn es verdächtig ist, oder nach links, wenn es harmlos wirkt. So ruckelt der Marker Schritt für Schritt über den Balken, bis alle Wörter dran waren.
- Was du tun kannst
- Wähle eine Beispiel-Mail oder tippe eigenen Text, dann starte die Reise mit Start und halte sie mit Pause an. Mit Einzelschritt gehst du Wort für Wort weiter, mit Zurücksetzen fängst du von vorne an. Der Regler für die Grundannahme verschiebt den Startpunkt des Markers.
- Worauf du achtest
- Kein einzelnes Wort entscheidet allein. Der Filter sammelt viele kleine Hinweise und zählt sie zu einer Gesamt-Wahrscheinlichkeit zusammen. Erst wo der Marker am Ende stehen bleibt, links oder rechts von der Mitte, fällt das Urteil.
Spam-O-Meter
E-Mail analysieren
Steuerung
Wort-Scanner
Bekannte Wörter im Wörterbuch
Naive Bayes erklärt
Das Bayes-Theorem
Naive Bayes basiert auf dem Bayes-Theorem von Thomas Bayes (1763): P(A|B) = P(B|A) × P(A) / P(B). Es berechnet die Wahrscheinlichkeit einer Hypothese (z.B. "Spam") gegeben bestimmter Beobachtungen (z.B. Wörter in einer E-Mail).
Die "naive" Annahme: Alle Features (Wörter) sind voneinander unabhängig. Das stimmt nicht ganz - "kostenloses Geld" kommt häufiger zusammen vor als zufällig. Trotzdem funktioniert der Algorithmus überraschend gut!
Schlüsselkonzepte
- Prior P(Spam): Basiswahrscheinlichkeit für Spam (z.B. 20% aller E-Mails)
- Likelihood P(Wort|Spam): Wie wahrscheinlich erscheint ein Wort in Spam?
- Evidence P(Wort): Wie häufig kommt das Wort insgesamt vor?
- Posterior P(Spam|Wörter): Endgültige Spam-Wahrscheinlichkeit nach Analyse
Warum 'Naive'?
Die Unabhängigkeitsannahme vereinfacht die Berechnung enorm: Statt P(W₁,W₂,...|Spam) berechnen wir einfach P(W₁|Spam) × P(W₂|Spam) × ... Dies ermöglicht schnelle Klassifikation auch bei vielen Features.
Vorteile
- Schnell: Training und Vorhersage sind sehr effizient
- Wenig Daten nötig: Funktioniert auch mit kleinen Datensätzen gut
- Interpretierbar: Man kann sehen, welche Wörter zur Entscheidung beitragen
- Robust: Unempfindlich gegen irrelevante Features
Anwendungen
Spam-Filter (Gmail, Outlook), Sentiment-Analyse (positiv/negativ), Dokumentenklassifikation, medizinische Diagnose, Empfehlungssysteme und Spracherkennung.
Probiere die Demo aus! Gib eine E-Mail ein und sieh Schritt für Schritt, wie der Algorithmus die Spam-Wahrscheinlichkeit berechnet.
1
# Naive Bayes Spam-Klassifikator
2
funktion klassifiziere_email(email):
3
# Prior: Basiswahrscheinlichkeit (aus historischen Daten)
4
prior_spam = 0.20 # 20% aller E-Mails sind Spam
5
prior_ham = 0.80 # 80% sind legitim (Ham)
6
7
# Wörter aus der E-Mail extrahieren
8
wörter = email.text.kleinbuchstaben().teilen()
9
bekannte_wörter = filtere(wörter, in_wörterbuch)
10
11
# Starte mit Prior-Wahrscheinlichkeiten
12
prob_spam = prior_spam
13
prob_ham = prior_ham
14
15
für jedes wort in bekannte_wörter:
16
# 'Naive' Annahme: Wörter sind unabhängig
17
likelihood_spam = wörterbuch[wort].spam_wahrscheinlichkeit
18
likelihood_ham = wörterbuch[wort].ham_wahrscheinlichkeit
19
20
# Multipliziere Wahrscheinlichkeiten (Log-Summe in Praxis)
21
prob_spam = prob_spam × likelihood_spam
22
prob_ham = prob_ham × likelihood_ham
23
24
# Normalisieren: Wahrscheinlichkeiten müssen 1 ergeben
25
gesamt = prob_spam + prob_ham
26
posterior_spam = prob_spam / gesamt
27
28
# Entscheidung treffen
29
wenn posterior_spam > 0.5:
30
return "SPAM"
31
sonst:
32
return "HAM"
📊 Prior festlegen
Setze die Basiswahrscheinlichkeit: Wie viel Prozent aller E-Mails sind typischerweise Spam? Diese 'Prior'-Wahrscheinlichkeit stammt aus historischen Daten (z.B. 20% Spam, 80% Ham).
prior_spam = 0.20 # 20% aller E-Mails sind Spam
prior_ham = 0.80 # 80% sind legitim (Ham)
📧 E-Mail-Eingabe
Eine neue E-Mail kommt an und muss klassifiziert werden: Ist sie Spam oder eine legitime Nachricht (Ham)?
🔤 Tokenisierung
Zerlege den Text in einzelne Wörter (Tokens). Entferne Satzzeichen, konvertiere zu Kleinbuchstaben, filtere bekannte Wörter.
📊 Prior anwenden
Starte mit der Basiswahrscheinlichkeit: Wie viel Prozent aller E-Mails sind generell Spam? Das ist unser Ausgangspunkt.
📖 Likelihoods berechnen
Für jedes Wort: Schlage im Wörterbuch nach, wie typisch es für Spam vs. Ham ist. Multipliziere alle Likelihoods.
🧮 Bayes-Theorem
Wende das Bayes-Theorem an: Kombiniere Prior und Likelihoods, normalisiere auf 100%. Ergebnis: Posterior-Wahrscheinlichkeit.
✅ Klassifikation
Finale Entscheidung: Posterior > 50% = Spam, sonst = Ham. Die E-Mail wird entsprechend sortiert.
Teste dein Wissen
Was bedeutet 'Naive' im Namen 'Naive Bayes'?
1. Was bedeutet 'Naive' im Namen 'Naive Bayes'?
- ☐ A) Der Algorithmus ist einfach zu verstehen
- ☐ B) Die Annahme, dass alle Wörter unabhängig voneinander sind
- ☐ C) Der Algorithmus macht oft Fehler
- ☐ D) Es ist eine vereinfachte Version von komplexeren Algorithmen
2. Was ist der 'Prior' in Naive Bayes?
- ☐ A) Die Wahrscheinlichkeit eines bestimmten Wortes
- ☐ B) Das Ergebnis der Klassifikation
- ☐ C) Die Basiswahrscheinlichkeit für Spam, bevor wir die E-Mail analysiert haben
- ☐ D) Die Anzahl der Spam-Wörter in der E-Mail
3. Was passiert, wenn ein sehr starkes Spam-Wort wie 'GRATIS' in einer E-Mail gefunden wird?
- ☐ A) Die Spam-Wahrscheinlichkeit steigt deutlich
- ☐ B) Die E-Mail wird sofort als Spam markiert
- ☐ C) Alle anderen Wörter werden ignoriert
- ☐ D) Der Prior wird auf 100% gesetzt
4. Warum funktioniert Naive Bayes trotz der 'naiven' Annahme so gut?
- ☐ A) Weil Wörter tatsächlich unabhängig voneinander sind
- ☐ B) Weil nur wenige Wörter analysiert werden
- ☐ C) Weil der Prior immer korrekt eingestellt ist
- ☐ D) Weil für die Klassifikation die relative Ordnung der Wahrscheinlichkeiten wichtiger ist als die exakten Werte
Verwandte Inhalte
Artikel
Bayes & Bedingte Wahrscheinlichkeit
Bedingte Wahrscheinlichkeit: das Werkzeug, mit dem man Statistiker erkennt — sie rechnen anders nach.
Bias & Datenqualität
Schlechte Daten in, schlechte KI out — mit der unangenehmen Pointe, dass es kein "perfekt fair" gibt.
Lageparameter: Wo ist die Mitte?
Drei Wege, die "Mitte" der Daten zu finden — und die unterhaltsame Frage, welcher davon gerade unehrlich ist.
Korrelation vs. Kausalität
Warum jeder Statistiker zuckt, wenn jemand "korreliert mit" sagt und "verursacht" meint.
Verteilungen: Die Form der Daten
Die Form der Daten erklärt — und warum eine Glockenkurve seltener ist, als man denkt.
Regeln & Logik: Expertensysteme
Die KI, bevor sie aus Daten lernte: Experten gefragt, Regeln aufgeschrieben, gehofft.
Sicherheit & Betrugsschutz
Was zu tun ist, wenn die Stimme am Telefon zwar wie ein Verwandter klingt, aber keiner ist.
Lineare & Logistische Regression
Die mathematische Basis, auf die jeder Deep-Learning-Kurs erst nach drei Stunden eingeht.
Programmieren vs. Trainieren
Wie sich das Programmieren veränderte, als man aufhörte, jede Regel selbst aufzuschreiben.
Wie gut ist dein Modell? Metriken, die wirklich zählen
Modelle bewerten ohne Selbstbetrug — Metriken, die nicht nur schmücken.
Wenn das Modell auswendig lernt (Overfitting)
Wie man bemerkt, dass das Modell nicht gelernt, sondern auswendig gepaukt hat.
Wahrscheinlichkeit & Erwartungswert
Erwartungswert: der Durchschnitt der Zukünfte, gewichtet nach Wahrscheinlichkeit.
Supervised Learning — Lernen mit Lehrer
Supervised Learning: das ML-Paradigma, bei dem jemand vorher fleißig beschriftet hat.
Demo
Entscheidungsbaum
Interaktive Demo zum Entscheidungsbaum: Punkte setzen, Tiefe regeln, Splits live sehen und Overfitting erleben.
Perceptron (Neuronale Netze)
Entdecke das erste künstliche Neuron - den Urknall des maschinellen Lernens aus dem Jahr 1957.
Überwachtes Lernen
Begleite Sharlock Helmes bei seinem cleversten Fall: dem Erlernen der Unterscheidung zwischen echten Hinweisen und Moriattys raffinierten Ablenkungskanövern. Elementary, mein lieber Algorithmus!