Naiver Bayes-Algorithmus im maschinellen Lernen

โšก Intelligente Zusammenfassung

Naive Bayes ist ein รผberwachtes, probabilistisches Klassifikationsverfahren, das auf dem Bayes-Theorem basiert und davon ausgeht, dass jedes Merkmal unabhรคngig beitrรคgt. Seine Theorie, ein ausgearbeiteter Shopping Beispielsweise werden im Folgenden die drei Modellvarianten, ihre Vorteile, Einschrรคnkungen und Anwendungsbeispiele aus der Praxis erlรคutert.

  • ๐Ÿ”˜ Definition: Ein Klassifikator, der einen Datensatz kennzeichnet, indem er die A-posteriori-Wahrscheinlichkeit jeder Kandidatenklasse vergleicht.
  • โ˜‘๏ธ Naive Annahme: Jedes Merkmal wird als bedingt unabhรคngig behandelt, was selten zutrifft, aber dennoch gute Vorhersagen ermรถglicht.
  • โœ… Bayes-Formel: P(A|B) ist gleich P(B|A) multipliziert mit P(A), dividiert durch P(B).
  • ๐Ÿงช Ausgearbeitetes Beispiel: Tag, Rabatt und kostenlose Lieferung ergeben zusammen eine Kaufwahrscheinlichkeit von 97.33 Prozent.
  • ๏ธ Drei Varianten: Multinomialverteilung fรผr Wortzรคhlungen, Bernoulli-Verteilung fรผr Wortprรคsenz, GauรŸverteilung fรผr kontinuierliche Werte.
  • โš ๏ธ Einschrรคnkung: Korrelierte Merkmale werden ignoriert, daher eignen sich Entscheidungsbรคume oder SVMs besser fรผr abhรคngige Daten.

Naiver Bayes-Algorithmus im maschinellen Lernen

Naiver Bayes-Klassifikator-Algorithmus

Ein Klassifikator ist ein Algorithmus des maschinellen Lernens, der Daten in eine oder mehrere von mehreren โ€žKlassenโ€œ einteilt. Ein bekanntes Beispiel ist ein E-Mail-Klassifikator: Er scannt jede eingehende Nachricht und ordnet ihr die Klassenbezeichnung Spam oder Kein Spam zu.

Der Naive Bayes-Klassifikator im maschinellen Lernen ist ein รผberwachtes Lernen Fรผr Klassifizierungsaufgaben verwendeter Algorithmus.

Das folgende Diagramm veranschaulicht diesen Ablauf.

Naive Bayes-Klassifikator, der einem Eingabedatensatz eine Klassenbezeichnung zuweist

Naive Bayes wird zur Lรถsung von Klassifizierungsproblemen verwendet. Es prognostiziert auf der Grundlage der Wahrscheinlichkeit eines Objekts. Naive Bayes basiert auf dem Bayes-Theorem und wird hauptsรคchlich zur Textklassifizierung verwendet. Naive Bayes ist ein probabilistischer Klassifizierungsalgorithmus, der einfach zu implementieren und schnell zu trainieren ist.

Da der Naive-Bayes-Klassifikator auf dem Bayes-Theorem basiert, wird er auch als Wahrscheinlichkeitsklassifikator bezeichnet. Er trifft Vorhersagen auf Grundlage der Wahrscheinlichkeit eines Ereignisses.

Warum heiรŸt es Naive Bayes?

Der Name Naive Bayes setzt sich aus zwei Teilen zusammen: Naiv und Bayes. Warum naiv? Der Algorithmus ignoriert die Reihenfolge der Merkmale, sodass โ€žDu bistโ€œ und โ€žBist duโ€œ fรผr ihn identisch erscheinen. Er geht auรŸerdem davon aus, dass kein Merkmal ein anderes beeinflusst. Um beispielsweise einen Apfel zu erkennen, nutzt man die rote Farbe, die kugelfรถrmige Gestalt und den sรผรŸen Geschmack. Der Algorithmus behandelt jedes dieser Merkmale als separates, unabhรคngiges Indiz.

  • Der Naive-Bayes-Klassifikator geht davon aus, dass die Merkmale voneinander unabhรคngig sind. Da dies in realen Daten selten der Fall ist, wird der Klassifikator als naiv bezeichnet.
  • Dieser Klassifizierungsalgorithmus basiert auf dem Bayes-Theorem und wird daher als Naive-Bayes-Klassifikator bezeichnet.

Satz von Naive Bayes

Das Bayes-Theorem dient zur Berechnung der Wahrscheinlichkeit einer Hypothese unter Berรผcksichtigung bedingter Wahrscheinlichkeiten, die vom Vorwissen abhรคngen. Es ist nach Thomas Bayes benannt. Der Naive-Bayes-Klassifikator basiert auf dem Prinzip der bedingten Wahrscheinlichkeit gemรครŸ dem Bayes-Theorem.

Um den Satz von Bayes zu verstehen, betrachten wir ein einfaches Beispiel eines Naive-Bayes-Klassifikators: das Werfen zweier Mรผnzen. Die Ergebnisrรคume fรผr das Werfen zweier Mรผnzen lauten: {HH, HT, TH, TT}. Die Wahrscheinlichkeiten fรผr diese Ereignisse sind dann:

  • Zwei Kรถpfe bekommen = 1/4
  • Mindestens ein Schwanz = 3/4
  • Die zweite Mรผnze ist Kopf, vorausgesetzt, die erste Mรผnze ist Schwanz = 1/2
  • Wenn man davon ausgeht, dass die erste Mรผnze zwei Kรถpfe hat, ist ein Kopf = 1/2

Das Bayes-Theorem berechnet die Wahrscheinlichkeit eines Ereignisses auf Grundlage der Wahrscheinlichkeit eines anderen, bereits eingetretenen Ereignisses. Die Formel fรผr das Bayes-Theorem lautet:

P(A|B) = (P(B|A) * P(A)) / P(B)

P(A|B) ist die Wahrscheinlichkeit fรผr Ereignis A, wenn Ereignis B bereits eingetreten ist. Die Wahrscheinlichkeit P(B) darf nicht null sein.

  • Sie mรผssen die Wahrscheinlichkeit von Ereignis A ermitteln, die gegeben ist, wenn Ereignis B (Beweis) wahr ist.
  • P(A) ist die A-priori-Wahrscheinlichkeit von A, also die Wahrscheinlichkeit des Ereignisses, bevor irgendwelche Anzeichen vorliegen. Hierbei ist Ereignis B der Wert einer unbekannten Instanz.
  • P(A|B) ist die A-posteriori-Wahrscheinlichkeit des Ereignisses A, also die Wahrscheinlichkeit von A nach Betrachtung der Evidenz B.

Funktionsbeispiel eines Naive-Bayes-Klassifikators

Am schnellsten lรคsst sich die Funktionsweise der Formel รผberprรผfen, indem man sie von Hand durchfรผhrt.

Nehmen wir als Beispiel ein Geschรคftping Um die Funktionsweise des Bayes-Naive-Klassifikators zu verstehen, enthรคlt dieser Datensatz fรผr dieses Beispiel einen kleinen Beispieldatensatz von 30 Zeilen.

Datensatz

Musterladenping Datensatz mit 30 Zeilen und den Spalten Tag, Rabatt, Kostenlose Lieferung und Kaufen

Das Problem besteht darin, mithilfe des Naive-Bayes-Theorems vorherzusagen, ob eine Person ein Produkt an einer bestimmten Kombination aus Tag, Rabatt und kostenloser Lieferung kaufen wird.

Hรคufigkeitstabelle mit den Ergebnissen โ€žKaufenโ€œ und โ€žNicht kaufenโ€œ fรผr jeden Attributwert

Schritt 1) Wir erstellen Hรคufigkeitstabellen fรผr jedes Attribut unter Verwendung der im Datensatz genannten Eingabetypen, z. B. Tage, Rabatt und kostenlose Lieferung.

Hรคufigkeitstabellen fรผr die Attribute โ€žTagโ€œ, โ€žRabattโ€œ und โ€žKostenlose Lieferungโ€œ

Das Ereignis โ€žKaufโ€œ sei mit โ€žAโ€œ bezeichnet, die unabhรคngigen Variablen โ€žRabattโ€œ, โ€žKostenlose Lieferungโ€œ und โ€žTagโ€œ mit โ€žBโ€œ. Mithilfe dieser Ereignisse und Variablen wenden wir den Satz von Bayes an.

Schritt 2) Lassen Sie uns nun die Likelihood-Tabellen einzeln berechnen.

Wahrscheinlichkeitstabelle fรผr das Attribut โ€žTagโ€œ im Vergleich zu โ€žKaufenโ€œ und โ€žNicht kaufenโ€œ.

Beispiel 1:

Basierend auf dieser Wahrscheinlichkeitstabelle berechnen wir die bedingten Wahrscheinlichkeiten wie folgt.

P(A) = P(No Buy) = 6/30 = 0.2
P(B) = P(Weekday) = 11/30 = 0.37
P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33

Und finden Sie P(A/B) mithilfe des Bayes-Theorems:

P(A/B)
= P(No Buy / Weekday)
= P(Weekday / No Buy) * P(No Buy) / P(Weekday)
= (2/6 * 6/30) / (11/30)
= 0.1818

ร„hnlich verhรคlt es sich, wenn A โ€žKaufโ€œ ist

= P(Buy / Weekday)
= P(Weekday / Buy) * P(Buy) / P(Weekday)
= (9/24 * 24/30) / (11/30)
= 0.8181

Hinweis: Da P(Kauf | Wochentag) grรถรŸer als P(Kein Kauf | Wochentag) ist, kรถnnen wir daraus schlieรŸen, dass ein Kunde das Produkt hรถchstwahrscheinlich an einem Wochentag kaufen wird.

Schritt 3) Ebenso kรถnnen wir die Eintrittswahrscheinlichkeit eines Ereignisses auf der Grundlage aller drei Variablen berechnen. Jetzt berechnen wir die Wahrscheinlichkeitstabellen fรผr alle drei Variablen unter Verwendung der obigen Hรคufigkeitstabellen.

Wahrscheinlichkeitstabellen fรผr Tag, Rabatt und Gratis-Lieferung, die in der kombinierten Berechnung verwendet wurden

Beispiel 2:

Mithilfe dieser drei Wahrscheinlichkeitstabellen berechnen wir nun anhand einer bestimmten Kombination aus โ€žTagโ€œ, โ€žRabattโ€œ und โ€žKostenlose Lieferungโ€œ, ob ein Kunde wahrscheinlich einen Kauf tรคtigen wird.

Nehmen wir hier eine Kombination dieser Faktoren:

  • Tag = Feiertag
  • Rabatt = Ja
  • Kostenlose Lieferung = Ja

Wann, A = Kaufen

Berechnen Sie die bedingte Kaufwahrscheinlichkeit fรผr die folgende Kombination aus Tag, Rabatt und Gratislieferung.

Wobei B ist:

  • Tag = Feiertag
  • Rabatt = Ja
  • Kostenlose Lieferung = Ja

Und A = Kaufen

Daher sind

= P(A/B)
= P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30)
= 0.986

Wenn A = Kein Kauf

Berechnen Sie auf รคhnliche Weise die bedingte Kaufwahrscheinlichkeit fรผr die folgende Kombination aus Tag, Rabatt und kostenloser Lieferung.

Wobei B ist:

  • Tag = Feiertag
  • Rabatt = Ja
  • Kostenlose Lieferung = Ja

Und A = Kein Kauf

Daher sind

= P(A/B)
= P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30)
= 0.027

Schritt 4) Daher

Kaufwahrscheinlichkeit = 0.986

Wahrscheinlichkeit, dass kein Kauf erfolgt = 0.027

SchlieรŸlich haben wir an diesem Tag bedingte Kaufwahrscheinlichkeiten. Lassen Sie uns nun diese Wahrscheinlichkeiten verallgemeinern, um die Wahrscheinlichkeit der Ereignisse zu erhalten.

  • Summe der Wahrscheinlichkeiten = 0.986 + 0.027 = 1.013
  • Kaufwahrscheinlichkeit = 0.986 / 1.013 = 97.33 %
  • Wahrscheinlichkeit, dass kein Kauf erfolgt = 0.027 / 1.013 = 2.67 %

Die beiden Werte ergeben zusammen 1.013 statt 1, weil die Unabhรคngigkeitsannahme dazu fรผhrt, dass jede Schรคtzung nur annรคhernd ist. Durch die Division durch die Gesamtsumme werden sie in Prozentwerte umgerechnet.

Beachten Sie, dass 97.33 % grรถรŸer als 2.67 % ist. Wir kรถnnen daraus schlieรŸen, dass der durchschnittliche Kunde im Urlaub mit Rabatt und kostenloser Lieferung einkauft.

Arten des Naive-Bayes-Modells

Es gibt viele Arten von Naive-Bayes-Klassifikatoren. Hier haben wir Multinomial-, Bernoulli- und GauรŸsche Naive-Bayes-Klassifikatoren besprochen.

Variante Funktionstyp Typische Verwendung
Multinomial Wortanzahl Themen- und Dokumentenklassifizierung
Bernoulli Binรคre Anwesenheits- oder Abwesenheitsflags Kurze Texte und Spamfilter
GauรŸ Kontinuierliche numerische Werte Sensorwerte und Messungen

1. Multinomiale Naive Bayes

Diese Art von Naive-Bayes-Modell wird fรผr Probleme bei der Dokumentenklassifizierung verwendet. Es arbeitet mit Funktionen, die die Hรคufigkeit von Wรถrtern in einem Dokument darstellen. Der Klassifikator berรผcksichtigt das Vorkommen und die Anzahl von Wรถrtern, um die Wahrscheinlichkeit zu bestimmen, dass ein Dokument zu einer bestimmten Kategorie gehรถrt, beispielsweise Sport, Politik oder Technologie.

2. Bernoulli Naive Bayes

Dies รคhnelt dem multinomialen Naive Bayes. Der Bernoulli Naive Bayes-Klassifikator wird fรผr Dokumentenklassifizierungsaufgaben verwendet. Es werden jedoch boolesche Prรคdiktoren verwendet. Es stellt dar, ob ein Wort vorhanden ist oder nicht und nimmt nur die Werte Ja oder Nein an. Der Klassifikator berechnet die Wahrscheinlichkeiten basierend darauf, ob ein Wort im Text vorkommt oder nicht.

3. GauรŸscher naiver Bayes

Dieser Klassifikator wird im Fall eines kontinuierlichen Werts, aber nicht eines diskreten Werts verwendet. Dieser Klassifikator berechnet Wahrscheinlichkeiten anhand der Parameter des GauรŸ Verteilung, d. h. Mittelwert und Varianz.

GauรŸsche Glockenkurve zur Modellierung kontinuierlicher Merkmale in Naive Bayes

Die Formel fรผr die bedingte Wahrscheinlichkeit รคndert sich zu:

Formel fรผr die bedingte Wahrscheinlichkeit nach dem GauรŸschen Naive-Bayes-Verfahren unter Verwendung von Mittelwert und Varianz

Das scikit-lernen Die Bibliothek fรผgt zwei weitere Varianten hinzu: Complement Naive Bayes fรผr unausgewogene Texte und Categorical Naive Bayes fรผr diskrete Kategorien.

Vorteile und Grenzen des Naive Bayes-Klassifikators

Es gibt verschiedene Vor- und Nachteile des Naive Bayes-Algorithmus beim maschinellen Lernen.

Vorteile des Naive Bayes-Klassifikators

  • Einfachheit und Effizienz: Naive Bayes ist einfach und leicht zu trainieren und umzusetzen. Aufgrund des geringen Rechenaufwands ist es effizient. Es kann groรŸe Datenmengen effizient verarbeiten.
  • Schnelles Training und Vorhersage: Naive Bayes benรถtigt aufgrund der Unabhรคngigkeit der Merkmale weniger Trainingsdaten. Nach dem Training des Modells kann es schnell Vorhersagen treffen.
  • Skalierbarkeit: Naive Bayes kann hochdimensionale Datensรคtze mit einer groรŸen Anzahl von Funktionen verarbeiten. Es funktioniert auch dann gut, wenn die Anzahl der Funktionen grรถรŸer ist als die Anzahl der Trainingsbeispiele. Es skaliert mit der Anzahl der Datenpunkte und Prรคdiktoren. Es verarbeitet sowohl kontinuierliche als auch diskrete Daten.
  • Robustheit gegenรผber irrelevanten Funktionen: Es reagiert nicht auf irrelevante Funktionen.
  • Funktioniert gut mit kleinen Trainingssets: Naive Bayes kann auch mit begrenzten Trainingsdaten zufriedenstellende Ergebnisse liefern. Es eignet sich fรผr Situationen, in denen die Anzahl der Trainingsbeispiele gering ist.

Einschrรคnkung des Naive Bayes-Klassifikators

Naive Bayes in Maschinelles Lernen geht davon aus, dass alle Merkmale unabhรคngig voneinander sind. Daher kann es keine Beziehungen zwischen verschiedenen Merkmalen in den Daten lernen. Es behandelt jedes Merkmal so, als ob es keine Beziehung zu den anderen hรคtte.

Ein zweiter Warnhinweis: Die angegebenen Klassenwahrscheinlichkeiten sind schlecht kalibriert, daher ist die einer Vorhersage zugeordnete Konfidenzzahl keine verlรคssliche Wahrscheinlichkeit.

Um dieses Problem zu lรถsen, kรถnnen Sie verwenden EntscheidungsbรคumeRandom Forests, Support Vector Machines (SVM), Neuronale Netze Diese Algorithmen sind in der Lage, komplexe Beziehungen und Abhรคngigkeiten zwischen Merkmalen in den Daten zu erkennen. Dadurch kรถnnen sie genauere Ergebnisse vorhersagen.

Anwendungen des Naive Bayes-Klassifikators

Da dieser Algorithmus schnell und effizient ist, kรถnnen Sie damit Echtzeitvorhersagen treffen.

Spam-Erkennung

E-Mail-Dienste (Wie z. B. GmailDieser Algorithmus wird verwendet, um festzustellen, ob eine E-Mail Spam ist. Er eignet sich hervorragend zur Spamfilterung.

Stimmungsanalyse

Es kann Text anhand von Merkmalen wie Wortwahl, Satzstruktur und Kontext als positiv, negativ oder neutral klassifizieren. Es findet Anwendung in der Social-Media-รœberwachung, in Kundenrezensionen und in der Marktforschung.

Dokumentenklassifizierung

Es kann Dokumente basierend auf der Hรคufigkeit oder dem Vorhandensein bestimmter Wรถrter oder Merkmale im Dokument in Kategorien wie Sport, Politik, Technologie oder Finanzen einteilen.

Empfehlungssysteme

Es kann Benutzerprรคferenzen, historische Daten und Artikelmerkmale analysieren, um Benutzerinteressen oder -prรคferenzen fรผr die Empfehlung von Produkten, Filmen oder Artikeln vorherzusagen.

Dieser Klassifizierungsalgorithmus wird auch in der Gesichtserkennung, Wettervorhersage, medizinischen Diagnostik und im Einzelhandel eingesetzt.pingNachrichtenklassifizierung usw. Sie kรถnnen Naive Bayes implementieren in Python, wobei das Modul sklearn.naive_bayes alle oben beschriebenen Varianten bereitstellt.

Hรคufig gestellte Fragen

Importieren Sie die benรถtigte Variante von sklearn.naive_bayesTeilen Sie die Daten mit `train_test_split` auf und wenden Sie anschlieรŸend `fit()` auf die Trainingsdaten und `predict()` auf die Testdaten an. GaussianNB eignet sich fรผr kontinuierliche Merkmale, wรคhrend MultinomialNB und BernoulliNB Textzรคhlungen und binรคre Wortkennzeichnungen verarbeiten.

Wenn eine Kategorie in den Trainingsdaten nie zusammen mit einer Klasse auftritt, wird ihre bedingte Wahrscheinlichkeit null und das gesamte Ergebnis ist ungรผltig. Durch Laplace-Glรคttung wird jeder Zรคhlung eins hinzugefรผgt, sodass nichts auf null zusammenfรคllt. Scikit-learn stellt dies als Alpha-Parameter dar.

Keiner der beiden Ansรคtze ist eindeutig รผberlegen. Naive Bayes trainiert schneller, benรถtigt weniger Daten und kommt mit hochdimensionalen Texten zurecht. Die logistische Regression modelliert korrelierte Merkmale und liefert besser kalibrierte Wahrscheinlichkeiten. Bei kleinen Textdatensรคtzen ist Naive Bayes oft fรผhrend; bei grรถรŸeren Datenmengen รผberholt die logistische Regression ihn.

Halten Sie einen Testdatensatz bereit und vergleichen Sie die Vorhersagen mit den tatsรคchlichen Labels mithilfe eines Verwirrung MatrixAnschlieรŸend werden Prรคzision, Trefferquote und F1-Wert abgeleitet. Die Genauigkeit allein ist bei unausgewogenen Daten wie Spam, bei denen eine Klasse die Stichprobe dominiert, irrefรผhrend.

Der Text wird in Kleinbuchstaben umgewandelt, Satzzeichen und Stoppwรถrter werden entfernt und optional die Tokens auf ihren Wortstamm reduziert. AnschlieรŸend wird jedes Dokument in einen Zรคhler oder einen TF-IDF-Vektor umgewandelt. Bernoulli-Varianten benรถtigen binรคre Prรคsenzflags anstelle von Zรคhlern. Diese Schritte werden sowohl beim Training als auch bei der Vorhersage angewendet.

Naive Bayes ist das einfachste Bayes'sche Netzwerk: ein Klassenknoten, an dem alle Merkmale direkt hรคngen, ohne Verbindungen zwischen den Merkmalen. Ein allgemeines Bayes'sches Netzwerk ermรถglicht es, diese Abhรคngigkeitskanten einzuzeichnen und modelliert somit Korrelationen, die Naive Bayes bewusst ignoriert.

Automatisierte Machine-Learning-Tools suchen nach Glรคttungswerten, Merkmalsdarstellungen und Varianten und ordnen die Kandidaten anschlieรŸend nach ihrem Kreuzvalidierungs-Score. Dadurch entfรคllt ein GroรŸteil des manuellen Ausprobierens โ€“ Sie entscheiden weiterhin, welche Metrik relevant ist und ob der Gewinner sinnvolle Ergebnisse liefert.

GitHub-Copilot Erstellt schnell den Standardcode โ€“ Importe, Aufteilung in Trainings- und Testdaten, Trainings- und Vorhersageaufrufe โ€“ anhand eines kurzen Kommentars. รœberprรผfen Sie immer die gewรคhlte Variante und den Auswertungscode, da ein plausibles Skript dennoch das falsche Modell trainieren kann.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: