Lernen Sie den naiven Bayes-Algorithmus | Beispiele für naive Bayes-Klassifikatoren

Inhalt

Notiz: Dieser Beitrag wurde ursprünglich veröffentlicht auf 13 September 2015 und aktualisiert die 11 September 2017

Überblick

  • Verstehen Sie einen der beliebtesten und einfachsten Machine-Learning-Klassifikationsalgorithmen, der Naive-Bayes-Algorithmus
  • Er basiert auf dem Bayes-Theorem, um Wahrscheinlichkeiten und bedingte Wahrscheinlichkeiten zu berechnen.
  • Lernen Sie, wie Sie den Naive-Bayes-Klassifikator in R und Python anwenden

Einführung

Hier ist eine Situation, in der Sie sich befinden Datenwissenschaft Luftzug:

Sie arbeiten an einem Klassifikationsproblem und haben Ihren Hypothesensatz erstellt, Merkmale erstellt und die Relevanz der Variablen diskutiert. In einer Stunde, möchten die Stakeholder den ersten Entwurf des Modells sehen.

Was werden Sie tun? Sie haben Hunderte von Datenpunkten und ziemlich viele Variablen in Ihrem Datensatz Ausbildung. In solch einer Situation, wenn ich an Ihrer Stelle wäre, hätte verwendet ‚Bayes ingenuo‚, das extrem schnell sein kann, wenn es mit anderen verbunden wird Klassifikationsalgorithmen. Es arbeitet mit dem Bayes'schen Wahrscheinlichkeitsgesetz, um die Klasse unbekannter Datensätze vorherzusagen.

In diesem Beitrag, Ich werde die Grundlagen dieses Algorithmus erklären, damit Sie beim nächsten Mal, wenn Sie auf große Datensätze stoßen, diesen Algorithmus in Aktion setzen können. Zur selben Zeit, wenn Sie ein Anfänger in Python sind das R, Sie sollten sich nicht von den im Beitrag verfügbaren Codes überwältigt fühlen.

Wenn Sie es vorziehen, das Naive-Bayes-Theorem von den Grundlagen bis zur Implementierung strukturiert zu lernen, Sie können sich kostenlos in diesen Kurs einschreiben:

Sind Sie ein Anfänger im Machine Learning? Beabsichtigen Sie, maschinelle Lernalgorithmen wie Naive Bayes zu beherrschen? Hier ist ein vollständiger Kurs, der maschinelles Lernen und Algorithmen abdeckt tiefes Lernen im Detail:

Projekt zur Anwendung von Naive Bayes

Problemstellung

HR Analytics revolutioniert die Arbeitsweise von HR-Abteilungen, führt zu höherer Effizienz und insgesamt besseren Ergebnissen. Die Personalabteilung hat genutzt Analyse im Laufe der Jahre.

Trotz dieses, die Zusammenstellung, Die Datenverarbeitung und -analyse erfolgte weitgehend manuell und, Angesichts der Natur der Dynamik der Personalabteilung und der KPI der Personalabteilung, der Fokus hat sich auf die Humanressourcen beschränkt. Deswegen, Es ist überraschend, dass die Personalabteilungen so spät im Spiel die Nützlichkeit von maschinellem Lernen erkannt haben. Dies ist eine Möglichkeit, Predictive Analytics zu testen, um die Mitarbeiter zu identifizieren, die am wahrscheinlichsten befördert werden.

Jetzt üben

Inhaltsverzeichnis

  1. Was ist der Naive-Bayes-Algorithmus?
  2. Wie funktionieren die Naive-Bayes-Algorithmen?
  3. Was sind die Vor- und Nachteile der Verwendung von Naive Bayes?
  4. 4 Anwendungen des Naive-Bayes-Algorithmus
  5. Schritte zum Aufbau eines grundlegenden Naive-Bayes-Modells in Python
  6. Tipps zur Steigerung der Leistungsfähigkeit des Naive-Bayes-Modells

Was ist der Naive-Bayes-Algorithmus?

Es ist ein Klassifizierungstechnik Basierend auf dem Bayes-Theorem mit der Annahme der Unabhängigkeit zwischen Prädiktoren. In einfachen Worten, Ein Naive-Bayes-Klassifikator geht davon aus, dass das Vorhandensein eines bestimmten Merkmals in einer Klasse nicht mit dem Vorhandensein eines anderen Merkmals zusammenhängt.

Als Beispiel, Eine Frucht kann als Apfel betrachtet werden, wenn sie rot, rund ist und ungefähr 3 Zoll im Durchmesser misst. Auch wenn diese Merkmale voneinander oder von der Existenz anderer Merkmale abhängen, alle diese Eigenschaften unabhängig zur Wahrscheinlichkeit beitragen, dass diese Frucht ein Apfel ist, und deshalb wird sie als ‚Naive‘.

Das Naive-Bayes-Modell ist einfach zu erstellen und insbesondere für sehr große Datensätze nützlich. Zusammen mit der Einfachheit, ist bekannt, dass Naive Bayes sogar hochentwickelte Klassifikationsmethoden übertrifft.

El teorema de Bayes proporciona una forma de calcular la probabilidad posterior P (C | x) a partir de P (C), P (x) y P (x | C). Mira la próxima ecuación:

bayes ingenuo, teorema de bayesÜber,

  • PAG(C | x) es la probabilidad posterior de Klasse (C, Zielsetzung) Würfel vaticinador (x, Attribute).
  • PAG(C) es la probabilidad previa de Klasse.
  • PAG(x | C) es la probabilidad que es la probabilidad de vaticinador Würfel Klasse.
  • PAG(x) es la probabilidad previa de vaticinador.

¿Cómo funciona el algoritmo Naive Bayes?

Lass es uns mit einem Beispiel verstehen. A continuación tengo un conjunto de datos de entrenamiento del clima y la Variable objetivo respectivo ‚Spiel‘ (que sugiere posibilidades de juego). Jetzt, debemos categorizar si los jugadores jugarán o no según las condiciones climáticas. Sigamos los pasos a continuación para realizarlo.

Paso 1: convierta el conjunto de datos en una tabla de frecuencias

Paso 2: Cree una tabla de probabilidad encontrando las probabilidades como la probabilidad de Nublado = 0.29 y la probabilidad de jugar es 0.64.

ingenuo bayes, Wahrscheinlichkeit, Beispiel

Paso 3: jetzt, Verwendet Ingenuo bayesiano ecuación para calcular la probabilidad posterior para cada clase. La clase con la probabilidad posterior más alta es el resultado de el pronóstico.

Ärger: Los jugadores jugarán si el clima es soleado. ¿Esta afirmación es correcta?

Podemos resolverlo usando el método de probabilidad posterior discutido previamente.

P (Jawohl | Soleado) = P (Soleado | Jawohl) * P (Jawohl) / P (Soleado)

Aquí tenemos P (Soleado | Jawohl) = 3/9 = 0.33, P (Soleado) = 5/14 = 0.36, P (Jawohl) = 9/14 = 0.64

Jetzt, P (Jawohl | Soleado) = 0.33 * 0.64 / 0.36 = 0.60, que tiene mayor probabilidad.

Naive Bayes utiliza un método equivalente para predecir la probabilidad de diferentes clases en función de varios atributos. Este algoritmo se utiliza principalmente en la clasificación de texto y con problemas que disponen múltiples clases.

¿Cuáles son los pros y los contras de Naive Bayes?

Vorteile:

  • Es fácil y rápido predecir la clase de conjunto de datos de prueba. Es funktioniert auch gut bei der Vorhersage von Mehrklassenproblemen.
  • Wenn die Unabhängigkeitsannahme erfüllt ist, funktioniert ein Naive-Bayes-Klassifikator besser im Vergleich zu anderen Modellen wie der logistischen Regression und benötigt weniger Trainingsdaten.
  • Es funktioniert gut bei kategorischen Eingabevariablen im Vergleich zu numerischen Variablen. Für die numerische Variable, wird eine Normalverteilung angenommen (Glockenkurve, was eine solide Annahme ist).

Nachteile:

  • Wenn die kategoriale Variable eine Kategorie enthält (die im Testdatensatz vorkommt), die im Trainingsdatensatz nicht beobachtet wurde, dann weist das Modell eine Wahrscheinlichkeit zu 0 (Null) und kann keine Vorhersage treffen. Dies ist oft bekannt als „Nullfrequenz“. Um dies zu beheben, Wir können die Glättungstechnik verwenden. Eine der einfachsten Glättungstechniken wird Laplace-Schätzung genannt.
  • Außerdem, Naiver Bayes wird außerdem als eine schlechte Annäherung bezeichnet schätzer, weshalb die Wahrscheinlichkeitsausgaben von predict_proba nicht zu ernst genommen werden sollten.
  • Eine weitere Einschränkung von Bayes ingenuo ist die Annahme unabhängiger Prädiktoren. Im echten Leben, es ist nahezu unmöglich, ein Set von Prädiktoren zu erhalten, das völlig unabhängig ist.

4 Anwendungen von naiven Bayes-Algorithmen

  • Echtzeitvorhersage: Naive Bayes ist ein gieriger und stabiler Klassifikator, der schnell ist. Deswegen, könnte verwendet werden, um Vorhersagen in Echtzeit zu treffen.
  • Mehrklassen-Vorhersage: Dieser Algorithmus ist zudem bekannt für seine Funktion zur Vorhersage mehrerer Klassen. Hier können wir die Wahrscheinlichkeit mehrerer Zielklassen vorhersagen.
  • Textklassifizierung / Spam-Filterung / Meinungsanalyse: Die Naive-Bayes-Klassifikatoren, die hauptsächlich in der Textklassifikation verwendet werden (aufgrund besserer Ergebnisse bei Problemen mit mehreren Klassen und der Unabhängigkeitsregel) haben sie eine höhere Erfolgsquote im Vergleich zu anderen Algorithmen. Während, werden weit verbreitet in der Filterung unerwünschter E-Mails verwendet (identifizieren unerwünschte E-Mails) und die Sentiment-Analyse (bei der Analyse von sozialen Netzwerken, um positive und negative Kundenstimmungen zu identifizieren).
  • Empfehlungssystem: Naive-Bayes-Klassifikator und Kollaboratives Filtern zusammen ein Empfehlungssystem aufbauen, das Techniken des maschinellen Lernens und Data Mining verwendet, um unsichtbare Informationen zu filtern und vorherzusagen, ob ein Benutzer eine bestimmte Ressource wünscht oder nicht

Wie man ein einfaches Modell mit Naive Bayes in Python und R erstellt?

Nochmal, scikit lernen (Python-Bibliothek) Hier wird es helfen, ein Naive-Bayes-Modell in Python zu erstellen. Es gibt drei Arten von Naive-Bayes-Modellen in der Bibliothek scikit-learn:

  • Gaussian: Es wird in der Klassifikation verwendet und geht davon aus, dass die Merkmale einer Normalverteilung folgen.

  • Multinomial: Es wird für diskrete Zählungen verwendet. Als Beispiel, Angenommen, wir haben ein Textklassifikationsproblem. Hier können wir Bernoulli-Versuche in Betracht ziehen, das ist ein weiterer Schritt und anstelle von „Wort, das im Dokument erscheint“, haben „zählen, wie oft das Wort im Dokument erscheint“, man kann es sich vorstellen wie „Anzahl der Male, dass das Ergebnis Nummer x_i während der n Versuche beobachtet wird.

  • Bernoulli: Das binomiale Modell ist nützlich, wenn Ihre Merkmalsvektoren binär sind (Mit anderen Worten, Nullen und Einsen). Eine Anwendung wäre die Textklassifikation mit dem Modell von ‚Sack voller Worte‘ wo die 1 Ja 0 Sohn „das Wort im Dokument erscheint“ Ja „das Wort im Dokument nicht erscheint“, beziehungsweise.

Python-Code:

Probieren Sie den folgenden Code im Codierungsfenster aus und überprüfen Sie Ihre Ergebnisse unterwegs!

R-Code:

benötigen(e1071) #Holds the Naive Bayes Classifier
Train <- lesen.csv(Datei.wählen())
Prüfen <- lesen.csv(Datei.wählen())

#Make sure the target variable is of a two-class classification problem only

levels(Train$Item_Fat_Content)

Modell <- naiveBayes(Item_Fat_Content~., data = Train)
Klasse(Modell) 
pred <- Vorhersagen(Modell,Prüfen)
Tisch(pred)

Vorher, analyse des grundlegenden Naive-Bayes-Modells, puede mejorar la potencia de este modelo básico ajustando los Parameter y manejando las suposiciones de manera inteligente. Veamos los métodos para impulsar el rendimiento del modelo Naive Bayes. Te sugiero que pases por este documento para obtener más detalles sobre la clasificación de texto usando Naive Bayes.

Tipps zur Steigerung der Leistungsfähigkeit des Naive-Bayes-Modells

Dann, se ofrecen algunos consejos para impulsar la potencia de Bayes ingenuo Modell:

  • Si las entidades continuas no disponen distribución normal, deberíamos utilizar transformación o diferentes métodos para convertirlas en distribución normal.
  • Si el conjunto de datos de prueba tiene un obstáculo de frecuencia cero, aplique técnicas de suavizado “Corrección de Laplace” para predecir la clase de conjunto de datos de prueba.
  • Elimine las características correlacionadas, puesto que las características altamente correlacionadas se votan dos veces en el modelo y pueden dar lugar a una relevancia exagerada.
  • Los clasificadores Naive Bayes disponen opciones limitadas para el ajuste de parámetros como alpha = 1 para suavizar, fit_prior =[Wahr|Falsch] para aprender las probabilidades previas de la clase o no y algunas otras opciones (ver detalles hier). Recomendaría centrarse en el procesamiento previo de datos y la selección de funciones.
  • Podrías pensar en aplicar algunos técnica de combinación de clasificador como einstellen, ensacado y refuerzo, pero estos métodos no ayudarían. In Wirklichkeit, „ensamblar, impulsar, embolsar“ wird nicht helfen, puesto que su objetivo es reducir la variación. Naive Bayes no tiene ninguna variación que minimizar.

Abschließende Anmerkungen

In diesem Beitrag, Analizamos uno de los algoritmos de aprendizaje automático supervisados “Naive Bayes“ que se utiliza principalmente para la clasificación. Glückwunsch, si ha entendido bien este post, ya ha dado el primer paso para dominar este algoritmo. Von jetzt an, todo lo que necesitas es practicar.

Zur selben Zeit, le sugiero que se centre más en el preprocesamiento de datos y la selección de características antes de aplicar el algoritmo Naive Bayes.0 En una publicación futura, hablaré sobre la clasificación de textos y documentos usando bayes ingenuos con más detalle.

Hat dir dieser Beitrag geholfen? Teile deine Meinung / Gedanken im Kommentarbereich unten.

Puede usar el siguiente recurso sin costes para aprender- Naive Bayes-

Lernen, anheuern, in Wettbewerb stehen, und angestellt werden!

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher