Naiver Bayes-Algorithmus im maschinellen Lernen

Naiver Bayes-Klassifikator-Algorithmus

Naiver Bayes-Klassifikator-Algorithmus

Classifier ist ein maschineller Lernalgorithmus, der Daten in eine oder mehrere „Klassen“ kategorisiert. Ein E-Mail-Classifier ist ein Beispiel für einen Classifier, der E-Mails scannt, um sie nach Klassenbezeichnung zu filtern: Spam oder Kein Spam.

Der Naive Bayes-Klassifikator beim maschinellen Lernen ist ein überwachtes maschinelles Lernen für Klassifizierungsaufgaben.

Naiver Bayes-Klassifikator-Algorithmus

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 als Wahrscheinlichkeitsklassifikator bezeichnet. Es prognostiziert basierend auf der Wahrscheinlichkeit eines Elements.

Grund, als Naive Bayes bezeichnet zu werden?

Der Naive-Bayes-Klassifikator besteht aus zwei Wörtern: Naiv und Bayes. Warum Navie? Dieser Algorithmus behandelt alle Wortsätze gleich. Beispielsweise sind „Du bist“ und „Bist du“ für diesen Algorithmus dasselbe. Es ist nicht von Merkmalen oder dem Auftreten von Merkmalen abhängig. Wenn Sie die Frucht Apfel identifizieren möchten, benötigen Sie die Farbe Rot, die Form einer Kugel und den süßen Geschmack, um sie als Apfel zu erkennen. Dies bedeutet, dass diese Funktionen unabhängig voneinander sind.

  • Der Naive-Bayes-Klassifikator geht davon aus, dass die Merkmale unabhängig voneinander sind. Da dies in realen Daten selten möglich ist, wird der Klassifikator als naiv bezeichnet.
  • Dieser Klassifizierungsalgorithmus basiert auf dem Bayes-Theorem, das auch als Naive Bayes Classifier bekannt ist.

Der Satz von Naive Bayes

Der Satz von Bayes wird verwendet, um die Wahrscheinlichkeit einer Hypothese mit bedingten Wahrscheinlichkeiten zu ermitteln, die vom Vorwissen abhängen. Dieser Satz ist nach Thomas Bayes benannt. Der Naive-Bayes-Klassifikator arbeitet nach dem Prinzip der bedingten Wahrscheinlichkeit, wie im Bayes-Theorem gegeben.

Um den Satz von Bayes zu verstehen, schauen wir uns ein einfaches Beispiel für einen naiven Bayes-Klassifikator für das Werfen zweier Münzen an. Wir können diese Beispielräume erhalten, indem wir zwei Münzen werfen: {HH, HT, TH, TT}. Die Wahrscheinlichkeiten dieser Ereignisse sind also:

  • 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

Der Satz von Bayes berechnet die Wahrscheinlichkeit, dass ein Ereignis eintritt, basierend auf der Wahrscheinlichkeit eines anderen Ereignisses, das bereits stattgefunden hat. Die Formel für das Bayes-Theorem lautet:

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

P(A|B) Wahrscheinlichkeit von geradem A, wenn gerade B bereits eingetreten ist. Die Wahrscheinlichkeit P(B) sollte nicht Null sein.

  • Sie müssen die Wahrscheinlichkeit von Ereignis A ermitteln, die gegeben ist, wenn Ereignis B (Beweis) wahr ist.
  • P(A) ist a priori (a priori, also die Wahrscheinlichkeit eines beobachteten Ereignisses vor dem Beweis) von A. Hier ist Ereignis B der Wert einer unbekannten Instanz.
  • P(A|B) ist die A-Posteriori-Wahrscheinlichkeit des Ereignisses B, also die Wahrscheinlichkeit des Ereignisses nach Betrachtung der Beweise.

Arbeitsbeispiel des Klassifikators von Naive Bayes

Nehmen wir ein Einkaufsbeispiel, um die Funktionsweise des Bayes Naive Classifier zu verstehen. In diesem Datensatz gibt es für dieses Beispiel einen kleinen Beispieldatensatz mit 30 Zeilen.

Datensatz

Arbeitsbeispiel des Klassifikators von Naive Bayes

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.

Arbeitsbeispiel des Klassifikators von Naive Bayes

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

Arbeitsbeispiel des Klassifikators von Naive Bayes

Lassen Sie das Ereignis „Kaufen“ mit „A“ und die unabhängigen Variablen „Rabatt“, „Kostenlose Lieferung“ und „Tag“ mit „B“ bezeichnen. Wir werden diese Ereignisse und Variablen verwenden, um den Satz von Bayes anzuwenden.

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

Arbeitsbeispiel des Klassifikators von Naive Bayes

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.

Arbeitsbeispiel des Klassifikators von Naive Bayes

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 %

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 naiven Bayes-Modells

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

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ßscher naiver Bayes

Die Formel für die bedingte Wahrscheinlichkeit ändert sich zu:

Gaußscher naiver Bayes

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 erfordert aufgrund der Unabhängigkeit zwischen den Funktionen nicht so viele Trainingsdaten. Es kann schnell Vorhersagen treffen, sobald das Modell trainiert ist.
  • 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 können auch mit begrenzten Trainingsdaten vernünftige Ergebnisse liefern. Es kann Situationen bewältigen, in denen die Anzahl der Trainingsinstanzen gering ist. Es sind nicht so viele Trainingsdaten erforderlich.

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.

Um dieses Problem zu lösen, können Sie verwenden Entscheidungsbäume, Random Forests, Support Vector Machines (SVM), Neuronale Netzwerke usw. Diese Algorithmen sind in der Lage, komplexe Beziehungen und Abhängigkeiten zwischen Merkmalen in den Daten zu erlernen. So 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 Gmail) verwenden diesen Algorithmus, um zu bestimmen, ob es sich bei einer E-Mail um Spam handelt. Dieser Algorithmus eignet sich hervorragend zum Filtern von Spam.

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 Klassifikationsalgorithmus wird auch bei der Gesichtserkennung, Wettervorhersage, medizinischen Diagnose, beim Einkaufen, bei der Nachrichtenklassifizierung usw. verwendet. Sie können Naive Bayes in implementieren Python. Es gibt den Naive-Bayes-Klassifikator sklearn, also sklearn.naive_bayes. Es ist das Modul, das diesen Algorithmus implementiert.

Fazit

Naive Bayes-Algorithmen im maschinellen Lernen sind Klassifikatoren, die hauptsächlich zur Spam-Erkennung, Nachrichtenklassifizierung, Stimmungsanalyse, Wettervorhersage, beim Einkaufen usw. verwendet werden. Die Naive Bayes-Algorithmen basieren auf dem Bayes-Theorem. Dies Algorithmus ist einfach und leicht umzusetzen. Da es schnell ist, können wir es in Echtzeitanwendungen verwenden. Sein größter Nachteil besteht darin, dass es unabhängige Merkmale annimmt (da unabhängige Merkmale im wirklichen Leben selten möglich sind, wird es als „naiv“ bezeichnet). Es behandelt jedes Feature als gleich. Um diesen Nachteil zu überwinden, können Sie andere Klassifikatoren wie Entscheidungsbaum, Random Forest, Support Vector Machine (SVM) usw. verwenden.