Es fällt mir schwer, den Prozess von Naive Bayes zu verstehen, und ich habe mich gefragt, ob jemand ihn mit einem einfachen Schritt-für-Schritt-Prozess auf Englisch erklären kann. Ich verstehe, dass Vergleiche nach Zeiten als Wahrscheinlichkeit erforderlich sind, aber ich habe keine Ahnung, wie die Trainingsdaten mit dem tatsächlichen Datensatz zusammenhängen.
Bitte erklären Sie mir, welche Rolle das Trainingsset spielt. Ich gebe hier ein sehr einfaches Beispiel für Früchte, wie zum Beispiel Bananen
training set---
round-red
round-orange
oblong-yellow
round-red
dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red
algorithm
machine-learning
dataset
classification
naivebayes
Jaggerjack
quelle
quelle
Antworten:
Ihre Frage, so wie ich sie verstehe, ist in zwei Teile unterteilt. Teil eins ist, dass Sie ein besseres Verständnis des Naive Bayes-Klassifikators benötigen, und Teil zwei ist die Verwirrung um das Trainingsset.
Im Allgemeinen müssen alle Algorithmen für maschinelles Lernen für überwachte Lernaufgaben wie Klassifizierung, Vorhersage usw. oder für unbeaufsichtigte Lernaufgaben wie Clustering trainiert werden.
Während des Trainingsschritts werden die Algorithmen mit einem bestimmten Eingabedatensatz (Trainingssatz) unterrichtet, damit wir sie später auf unbekannte Eingaben (die sie noch nie gesehen haben) testen können, für die sie klassifizieren oder vorhersagen können (im Falle einer Überwachung) Lernen) basierend auf ihrem Lernen. Darauf basieren die meisten Techniken des maschinellen Lernens wie Neuronale Netze, SVM, Bayesian usw.
In einem allgemeinen Projekt für maschinelles Lernen müssen Sie Ihren Eingabesatz grundsätzlich in einen Entwicklungssatz (Trainingssatz + Entwicklertestsatz) und einen Testsatz (oder Bewertungssatz) unterteilen. Denken Sie daran, dass Ihr grundlegendes Ziel darin besteht, dass Ihr System neue Eingaben lernt und klassifiziert, die sie noch nie zuvor im Dev-Set oder im Test-Set gesehen haben.
Der Testsatz hat normalerweise das gleiche Format wie der Trainingssatz. Es ist jedoch sehr wichtig, dass sich der Testsatz vom Trainingskorpus unterscheidet: Wenn wir den Trainingssatz einfach als Testsatz wiederverwenden, wird ein Modell, das sich einfach seine Eingabe merkt, ohne zu lernen, wie man auf neue Beispiele verallgemeinert, irreführend erhalten Highscores.
Im Allgemeinen können beispielsweise 70% unserer Daten als Trainingssatzfälle verwendet werden. Denken Sie auch daran, den ursprünglichen Satz zufällig in die Trainings- und Testsätze zu unterteilen .
Nun komme ich zu Ihrer anderen Frage zu Naive Bayes.
Betrachten Sie das folgende Beispiel, um das Konzept der naiven Bayes-Klassifikation zu demonstrieren:
Wie angegeben, können die Objekte entweder
GREEN
oder klassifiziert werdenRED
. Unsere Aufgabe ist es, neue Fälle bei ihrem Eintreffen zu klassifizieren, dh anhand der aktuell vorhandenen Objekte zu entscheiden, zu welcher Klassenbezeichnung sie gehören.Da es doppelt so viele
GREEN
Objekte gibt wieRED
, ist es vernünftig zu glauben, dass ein neuer Fall (der noch nicht beobachtet wurde) mit doppelter Wahrscheinlichkeit eher eine Mitgliedschaft hatGREEN
alsRED
. In der Bayes'schen Analyse ist dieser Glaube als vorherige Wahrscheinlichkeit bekannt. Frühere Wahrscheinlichkeiten basieren auf früheren Erfahrungen, in diesem Fall dem ProzentsatzGREEN
und denRED
Objekten, und werden häufig verwendet, um Ergebnisse vorherzusagen, bevor sie tatsächlich eintreten.So können wir schreiben:
Vorherige Wahrscheinlichkeit von
GREEN
:number of GREEN objects / total number of objects
Vorherige Wahrscheinlichkeit von
RED
:number of RED objects / total number of objects
Da es insgesamt
60
Objekte gibt,40
von denenGREEN
und 20 sindRED
, sind unsere vorherigen Wahrscheinlichkeiten für die Klassenmitgliedschaft:Vorherige Wahrscheinlichkeit für
GREEN
:40 / 60
Vorherige Wahrscheinlichkeit für
RED
:20 / 60
Nachdem wir unsere vorherige Wahrscheinlichkeit formuliert haben, können wir nun ein neues Objekt klassifizieren (
WHITE
Kreis im Diagramm unten). Da die Objekte gut gruppiert sind, ist anzunehmen, dass je mehrGREEN
(oderRED
) Objekte in der Nähe von X vorhanden sind, desto wahrscheinlicher ist es, dass die neuen Fälle zu dieser bestimmten Farbe gehören. Um diese Wahrscheinlichkeit zu messen, zeichnen wir einen Kreis um X, der eine Anzahl (a priori zu wählender) Punkte umfasst, unabhängig von deren Klassenbezeichnungen. Dann berechnen wir die Anzahl der Punkte im Kreis, die zu jeder Klassenbezeichnung gehören. Daraus berechnen wir die Wahrscheinlichkeit:Aus der obigen Abbildung geht hervor, dass die Wahrscheinlichkeit eines
X
GegebenenGREEN
kleiner ist als die Wahrscheinlichkeit einesX
GegebenenRED
, da der Kreis1
GREEN
Objekte und3
RED
Einsen umfasst. Somit:Obwohl der Stand der Wahrscheinlichkeiten , die angeben ,
X
gehören , kannGREEN
(vorausgesetzt , dass es doppelt so viele sind imGREEN
Vergleich zuRED
) zeigt die Wahrscheinlichkeit sonst; dass die Klassenzugehörigkeit vonX
istRED
(vorausgesetzt, es befinden sich mehrRED
Objekte in der Nähe vonX
alsGREEN
). In der Bayes'schen Analyse wird die endgültige Klassifizierung durch Kombinieren beider Informationsquellen, dh der vorherigen und der Wahrscheinlichkeit, erstellt, um eine hintere Wahrscheinlichkeit unter Verwendung der sogenannten Bayes-Regel (benannt nach Rev. Thomas Bayes 1702-1761) zu bilden.Schließlich klassifizieren wir X als,
RED
da seine Klassenmitgliedschaft die größte hintere Wahrscheinlichkeit erreicht.quelle
Mir ist klar, dass dies eine alte Frage mit einer etablierten Antwort ist. Der Grund, warum ich etwas poste, ist, dass die akzeptierte Antwort viele Elemente von k-NN ( k- nächstgelegene Nachbarn) enthält, einem anderen Algorithmus.
Sowohl k-NN als auch NaiveBayes sind Klassifizierungsalgorithmen. Konzeptionell verwendet k-NN die Idee der "Nähe", um neue Entitäten zu klassifizieren. In k-NN wird 'Nähe' mit Ideen wie Euklidischer Abstand oder Kosinusabstand modelliert. Im Gegensatz dazu wird in NaiveBayes das Konzept der 'Wahrscheinlichkeit' verwendet, um neue Entitäten zu klassifizieren.
Da es sich bei der Frage um Naive Bayes handelt, würde ich jemandem hier die Ideen und Schritte beschreiben. Ich werde versuchen, es mit so wenig Gleichungen und so einfach wie möglich im Klartext zu machen.
Erstens die bedingte Wahrscheinlichkeits- und Bayes-Regel
Bevor jemand die Nuancen von Naive Bayes verstehen und schätzen kann, muss er zuerst einige verwandte Konzepte kennen, nämlich die Idee der bedingten Wahrscheinlichkeit und die Bayes-Regel. (Wenn Sie mit diesen Konzepten vertraut sind, fahren Sie mit dem Abschnitt " Getting to Naive Bayes" fort. )
Bedingte Wahrscheinlichkeit im Klartext: Wie hoch ist die Wahrscheinlichkeit, dass etwas passiert, wenn bereits etwas anderes passiert ist?
Nehmen wir an, es gibt einige Ergebnisse O. und einige Beweise E. Aus der Art und Weise, wie diese Wahrscheinlichkeiten definiert sind: Die Wahrscheinlichkeit, dass sowohl das Ergebnis O als auch die Beweise E auftreten, ist: (Wahrscheinlichkeit, dass O auftritt) multipliziert mit (Wahrscheinlichkeit von E, vorausgesetzt, dass O ist passiert)
Ein Beispiel zum Verständnis der bedingten Wahrscheinlichkeit:
Nehmen wir an, wir haben eine Sammlung von US-Senatoren. Senatoren könnten Demokraten oder Republikaner sein. Sie sind auch entweder männlich oder weiblich.
Wenn wir einen Senator völlig zufällig auswählen, wie hoch ist die Wahrscheinlichkeit, dass diese Person eine Demokratin ist? Die bedingte Wahrscheinlichkeit kann uns dabei helfen, dies zu beantworten.
Wahrscheinlichkeit von (demokratischer und weiblicher Senator) = Prob (Senator ist Demokrat) multipliziert mit der bedingten Wahrscheinlichkeit, weiblich zu sein, da sie ein Demokrat sind.
Wir könnten genau dasselbe berechnen, umgekehrt:
Bayes-Regel verstehen
Konzeptionell ist dies ein Weg von P (Evidence | Known Outcome) zu P (Outcome | Known Evidence). Oft wissen wir, wie häufig bestimmte Beweise bei einem bekannten Ergebnis beobachtet werden . Wir müssen diese bekannte Tatsache nutzen, um das Gegenteil zu berechnen und die Wahrscheinlichkeit zu berechnen, dass dieses Ergebnis angesichts der Beweise eintritt.
P (Ergebnis, wenn wir einige Beweise kennen) = P (Ergebnisse, wenn wir das Ergebnis kennen) mal Prob (Ergebnis), skaliert mit P (Beweise)
Das klassische Beispiel zum Verständnis der Bayes-Regel:
Das alles war nur eine Präambel, um nach Naive Bayes zu gelangen.
Anreise nach Naive Bayes
Bisher haben wir nur über ein Beweisstück gesprochen. In Wirklichkeit müssen wir ein Ergebnis vorhersagen, wenn mehrere Beweise vorliegen. In diesem Fall wird die Mathematik sehr kompliziert. Um diese Komplikation zu umgehen, besteht ein Ansatz darin, mehrere Beweisstücke zu „entkoppeln“ und jedes Beweisstück als unabhängig zu behandeln. Dieser Ansatz wird deshalb als naive Bayes bezeichnet.
Viele Menschen erinnern sich daran als:
Beachten Sie einige Dinge zu dieser Gleichung:
base rates
und sind eine Möglichkeit, unsere vorhergesagten Wahrscheinlichkeiten zu skalieren.Wie wende ich NaiveBayes an, um ein Ergebnis vorherzusagen?
Führen Sie einfach die obige Formel für jedes mögliche Ergebnis aus. Da wir versuchen zu klassifizieren , wird jedes Ergebnis als a bezeichnet
class
und hat eine.class label.
Unsere Aufgabe ist es, die Beweise zu untersuchen, zu prüfen, wie wahrscheinlich es ist, dass es sich um diese oder jene Klasse handelt, und jeder Entität eine Bezeichnung zuzuweisen. Auch hier verfolgen wir einen sehr einfachen Ansatz: Die Klasse mit der höchsten Wahrscheinlichkeit wird zum "Gewinner" erklärt, und diese Klassenbezeichnung wird dieser Kombination von Beweisen zugewiesen.Fruchtbeispiel
Probieren wir es an einem Beispiel aus, um unser Verständnis zu verbessern: Das OP bat um ein Beispiel für die Identifizierung von Früchten.
Nehmen wir an, wir haben Daten zu 1000 Fruchtstücken. Es sind Bananen , Orangen oder andere Früchte . Wir kennen 3 Eigenschaften über jede Frucht:
Dies ist unser "Trainingsset". Wir werden dies verwenden, um die Art der neuen Früchte vorherzusagen, denen wir begegnen.
Wir können viele Dinge über unsere Obstsammlung vorberechnen.
Die sogenannten "Prior" -Wahrscheinlichkeiten. (Wenn wir keine der Fruchtattribute kennen würden, wäre dies unsere Vermutung.) Dies sind unsere
base rates.
Wahrscheinlichkeit von "Beweisen"
Wahrscheinlichkeit der "Wahrscheinlichkeit"
Wie klassifiziert man eine Frucht?
Nehmen wir an, wir erhalten die Eigenschaften einer unbekannten Frucht und werden gebeten, sie zu klassifizieren. Uns wird gesagt, dass die Frucht lang, süß und gelb ist. Ist es eine Banane? Ist es eine Orange? Oder ist es eine andere Frucht?
Wir können einfach die Zahlen für jedes der drei Ergebnisse einzeln eingeben. Dann wählen wir die höchste Wahrscheinlichkeit und klassifizieren unsere unbekannte Frucht als zu der Klasse gehörend, die die höchste Wahrscheinlichkeit hatte, basierend auf unseren vorherigen Beweisen (unserem 1000-Frucht-Trainingsset):
Mit überwältigender Mehrheit (
0.252 >> 0.01875
) klassifizieren wir diese süße / lange / gelbe Frucht als wahrscheinlich eine Banane.Warum ist Bayes Classifier so beliebt?
Schau dir an, worauf es letztendlich ankommt. Nur ein bisschen zählen und multiplizieren. Wir können alle diese Begriffe vorberechnen, sodass die Klassifizierung einfach, schnell und effizient wird.
Let z = 1 / P(evidence).
Jetzt berechnen wir schnell die folgenden drei Größen.Weisen Sie die Klassenbezeichnung der höchsten Zahl zu, und Sie sind fertig.
Trotz des Namens erweist sich Naive Bayes in bestimmten Anwendungen als ausgezeichnet. Die Textklassifizierung ist ein Bereich, in dem sie wirklich glänzt.
Ich hoffe, das hilft beim Verständnis der Konzepte hinter dem Naive Bayes-Algorithmus.
quelle
Ram Narasimhan hat das Konzept hier sehr gut erklärt . Dies ist eine alternative Erklärung anhand des Codebeispiels von Naive Bayes in Aktion.
Es wird ein Beispielproblem aus diesem Buch auf Seite 351 verwendet.
Dies ist der Datensatz, den wir im obigen Datensatz verwenden werden, wenn wir angeben die Hypothese = wie hoch ist dann die Wahrscheinlichkeit, dass er einen Computer kauft oder nicht. Der folgende Code beantwortet genau diese Frage. Erstellen Sie einfach eine Datei mit dem Namen named und fügen Sie den folgenden Inhalt ein.
{"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}
new_dataset.csv
Hier ist der Code, in dem die Kommentare alles erklären, was wir hier tun! [Python]
Ausgabe:
Hoffe, es hilft beim besseren Verständnis des Problems
Frieden
quelle
Naive Bayes: Naive Bayes unterliegt der Überwachung des maschinellen Lernens, mit dem Datensätze klassifiziert wurden. Es wird verwendet, um Dinge basierend auf seinen Vorkenntnissen und Unabhängigkeitsannahmen vorherzusagen.
Sie nennen es naiv, weil die Annahmen (es wird davon ausgegangen, dass alle Funktionen im Datensatz gleich wichtig und unabhängig sind) wirklich optimistisch sind und in den meisten realen Anwendungen selten zutreffen.
Es ist der Klassifizierungsalgorithmus, der die Entscheidung für den unbekannten Datensatz trifft. Es basiert auf dem Bayes-Theorem, das die Wahrscheinlichkeit eines Ereignisses anhand seines Vorwissens beschreibt.
Das folgende Diagramm zeigt, wie naive Bayes funktionieren
Formel zur Vorhersage NB:
Wie benutzt man den Naive Bayes Algorithmus?
Nehmen wir ein Beispiel, wie NB Woks
Schritt 1: Zuerst ermitteln wir die Wahrscheinlichkeit der Tabelle, die die Wahrscheinlichkeit von Ja oder Nein im folgenden Diagramm zeigt. Schritt 2: Finden Sie die hintere Wahrscheinlichkeit jeder Klasse.
Weitere Informationen finden Sie in diesem Blog.
Siehe GitHub Repository Naive-Bayes-Beispiele
quelle
Ich versuche die Bayes-Regel anhand eines Beispiels zu erklären.
Wie groß ist die Chance, dass eine zufällige Person, die aus der Gesellschaft ausgewählt wurde, Raucher ist?
Sie können 10% antworten.
Was ist, wenn die Person ein Mann und 15 Jahre alt ist?
Es kann nicht 60% sein, obwohl wir wissen, dass der Prozentsatz der Raucher sehr niedrig war. Es kann auch nicht weniger als 10% sein. 15 oder 20% sind bessere Vermutungen.
Tatsächlich versuchen wir, die anfängliche Vermutung mit neuen Beweisstücken zu aktualisieren (
P(smoker) vs. P(smoker | evidence)
). Die Bayes-Regel ist eine Möglichkeit, diese beiden Wahrscheinlichkeiten miteinander zu verbinden.Jeder Beweis kann diese Chance erhöhen oder verringern. Zum Beispiel kann diese Tatsache, dass er ein Mann ist , die Chance erhöhen, vorausgesetzt, dieser Prozentsatz (ein Mann zu sein) unter Nichtrauchern ist niedriger. Mit anderen Worten, ein Mann zu sein, muss ein guter Indikator dafür sein, eher Raucher als Nichtraucher zu sein.
Diesen Beitrag können wir auch auf andere Weise zeigen. Für jedes Merkmal können Sie die Gemeinsamkeit (Wahrscheinlichkeit) dieses Merkmals unter den gegebenen Bedingungen mit seiner Gemeinsamkeit allein vergleichen. (
P(f | x) vs. P(f))
.Wenn wir zum Beispiel wissen, dass 90% der Raucher Männer sind, reicht es immer noch nicht aus zu sagen, ob ein Mann ein Indikator dafür ist, Raucher zu sein oder nicht. Wenn zum Beispiel die Wahrscheinlichkeit, ein Mann in der Gesellschaft zu sein, ebenfalls 90% beträgt, hilft es uns nicht, zu wissen, dass jemand ein Mann ist
((90% / 90%) = 1
. Wenn Männer jedoch zu 40% der Gesellschaft, aber zu 90% der Raucher beitragen, erhöht das Wissen, dass jemand ein Mann ist, die Wahrscheinlichkeit, Raucher zu sein(90% / 40%) = 2.25
, und erhöht die anfängliche Schätzung (10%) um 2,25, was 22,5% ergibt.Wenn jedoch die Wahrscheinlichkeit, ein Mann zu sein, in der Gesellschaft 95% betrug, dann ungeachtet der Tatsache, dass der Prozentsatz der Männer unter den Rauchern hoch ist (90%)! Der Beweis, dass jemand ein Mann ist, verringert die Wahrscheinlichkeit, dass er Raucher ist!
(90% / 95%) = 0.95)
.Also haben wir:
Beachten Sie, dass wir in dieser Formel davon ausgegangen sind, dass es unabhängige Merkmale sind , ein Mann zu sein und unter 20 zu sein. Daher haben wir sie multipliziert. Dies bedeutet, dass das Wissen, dass jemand unter 20 ist, keinen Einfluss darauf hat, zu erraten, dass er ein Mann oder eine Frau ist. Aber es kann nicht wahr sein, zum Beispiel sind die meisten Jugendlichen in einer Gesellschaft Männer ...
Verwendung dieser Formel in einem Klassifikator
Der Klassifikator hat einige Merkmale (ein Mann zu sein und unter 20 zu sein) und muss entscheiden, ob er Raucher ist oder nicht (dies sind zwei Klassen). Es verwendet die obige Formel, um die Wahrscheinlichkeit jeder Klasse unter den Beweisen (Merkmalen) zu berechnen, und weist der Eingabe die Klasse mit der höchsten Wahrscheinlichkeit zu. Um die erforderlichen Wahrscheinlichkeiten (90%, 10%, 80% ...) bereitzustellen, wird das Trainingsset verwendet. Zum Beispiel werden die Personen im Trainingssatz gezählt, die Raucher sind und 10% der Stichprobe ausmachen. Dann prüft der Raucher, wie viele von ihnen Männer oder Frauen sind ... wie viele über 20 oder unter 20 sind ... Mit anderen Worten, es wird versucht, die Wahrscheinlichkeitsverteilung der Merkmale für jede Klasse basierend auf dem Training zu erstellen Daten.
quelle