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.
P(Democrat & Female) = P(Democrat) * P(Female | Democrat)
Wir könnten genau dasselbe berechnen, umgekehrt:
P(Democrat & Female) = P(Female) * P(Democrat | Female)
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:
Probability of Disease D given Test-positive =
Prob(Test is positive|Disease) * P(Disease)
_______________________________________________________________
(scaled by) Prob(Testing Positive, with or without the disease)
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.
P(Outcome|Multiple Evidence) =
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)
Viele Menschen erinnern sich daran als:
P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
P(Evidence)
Beachten Sie einige Dinge zu dieser Gleichung:
- Wenn der Prob (Beweis | Ergebnis) 1 ist, multiplizieren wir nur mit 1.
- Wenn der Prob (ein bestimmter Beweis | Ergebnis) 0 ist, dann ist der gesamte Prob. wird 0. Wenn Sie widersprüchliche Beweise sehen, können wir dieses Ergebnis ausschließen.
- Da wir alles durch P (Evidence) teilen, können wir sogar davonkommen, ohne es zu berechnen.
- Die Intuition hinter der Multiplikation mit dem Prior ist, dass wir häufigeren Ergebnissen eine hohe Wahrscheinlichkeit und unwahrscheinlichen Ergebnissen niedrige Wahrscheinlichkeiten geben. Diese werden auch genannt
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:
- Ob es lang ist
- Ob es süß ist und
- Wenn seine Farbe Gelb ist.
Dies ist unser "Trainingsset". Wir werden dies verwenden, um die Art der neuen Früchte vorherzusagen, denen wir begegnen.
Type Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
___________________________________________________________________
Banana | 400 | 100 || 350 | 150 || 450 | 50 | 500
Orange | 0 | 300 || 150 | 150 || 300 | 0 | 300
Other Fruit | 100 | 100 || 150 | 50 || 50 | 150 | 200
____________________________________________________________________
Total | 500 | 500 || 650 | 350 || 800 | 200 | 1000
___________________________________________________________________
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 unserebase rates.
P(Banana) = 0.5 (500/1000)
P(Orange) = 0.3
P(Other Fruit) = 0.2
Wahrscheinlichkeit von "Beweisen"
p(Long) = 0.5
P(Sweet) = 0.65
P(Yellow) = 0.8
Wahrscheinlichkeit der "Wahrscheinlichkeit"
P(Long|Banana) = 0.8
P(Long|Orange) = 0 [Oranges are never long in all the fruit we have seen.]
....
P(Yellow|Other Fruit) = 50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75
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):
P(Banana|Long, Sweet and Yellow)
P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
= _______________________________________________________________
P(Long) * P(Sweet) * P(Yellow)
= 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)
= 0.252 / P(evidence)
P(Orange|Long, Sweet and Yellow) = 0
P(Other Fruit|Long, Sweet and Yellow)
P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
= ____________________________________________________________________________________
P(evidence)
= (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)
= 0.01875 / P(evidence)
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.
P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence) = z * Prob(Other) * Prob(Evidence1|Other) * Prob(Evidence2|Other) ...
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.