Die akzeptierte Antwort enthält viele Elemente von k-NN ( k -nächste Nachbarn), ein anderer 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 die "Nähe" mit Konzepten wie dem Euklidischen Abstand oder dem Cosinus-Abstand modelliert. Im Gegensatz dazu wird bei NaiveBayes das Konzept der "Wahrscheinlichkeit" verwendet, um neue Entitäten zu klassifizieren.
Da es in der Frage um Naive Bayes geht, würde ich jemandem die Ideen und Schritte folgendermaßen beschreiben. Ich werde versuchen, es mit so wenig Gleichungen und in einfachem Englisch wie möglich zu tun.
Erstens: Bedingte Wahrscheinlichkeit und Bayes-Regel
Bevor jemand die Nuancen von Naive Bayes' verstehen und schätzen kann, muss er zunächst ein paar verwandte Konzepte kennen, nämlich die Idee der bedingten Wahrscheinlichkeit und die Bayes-Regel. (Wenn Sie mit diesen Konzepten vertraut sind, können Sie den Abschnitt mit dem Titel Einstieg in Naive Bayes' )
Bedingte Wahrscheinlichkeit in einfachem Englisch: Wie hoch ist die Wahrscheinlichkeit, dass etwas passiert? vorausgesetzt, dass etwas anderes ist bereits geschehen.
Nehmen wir an, es gibt ein Ergebnis O und einen Beweis E. Aus der Definition dieser Wahrscheinlichkeiten ergibt sich, dass die Wahrscheinlichkeit, ein Ergebnis zu haben, sehr hoch ist: Die Wahrscheinlichkeit, ein beide das Ergebnis O und die Evidenz E ist: (Wahrscheinlichkeit des Eintretens von O) multipliziert mit der (Wahrscheinlichkeit von E bei Eintreten von O)
Ein Beispiel zum Verständnis der bedingten Wahrscheinlichkeit:
Nehmen wir an, wir haben eine Sammlung von US-Senatoren. Die Senatoren können 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 helfen, diese Frage zu beantworten.
Wahrscheinlichkeit (Demokrat und weibliche Senatorin)= Wahrscheinlichkeit (Senatorin ist Demokratin) multipliziert mit der bedingten Wahrscheinlichkeit, weiblich zu sein, wenn sie eine Demokratin ist.
P(Democrat & Female) = P(Democrat) * P(Female | Democrat)
Wir könnten genau dasselbe in umgekehrter Weise berechnen:
P(Democrat & Female) = P(Female) * P(Democrat | Female)
Die Bayes-Regel verstehen
Konzeptionell ist dies ein Weg, um von P(Evidence|Known Outcome) zu P(Outcome|Known Evidence) zu gelangen. Oft wissen wir, wie häufig eine bestimmte Evidenz beobachtet wird, bei bekanntem Ergebnis . Wir müssen diese bekannte Tatsache nutzen, um den Umkehrschluss zu berechnen, um die Chance zu berechnen, dass Ergebnis Ereignis in Anbetracht der Beweise.
P(Ergebnis bei Kenntnis einiger Indizien) = P(Indizien bei Kenntnis des Ergebnisses) mal Wahrscheinlichkeit(Ergebnis), skaliert mit P(Indizien)
Das klassische Beispiel zum Verständnis der Bayes-Regel:
Probability of Disease D given Test-positive =
P(Test is positive|Disease) * P(Disease)
_______________________________________________________________
(scaled by) P(Testing Positive, with or without the disease)
All dies war nur eine Vorrede, um zu Naive Bayes zu kommen.
Einstieg in Naive Bayes'
Bislang haben wir nur über ein einziges Beweisstück gesprochen. In Wirklichkeit müssen wir ein Ergebnis vorhersagen, das mehrere Beweise. In diesem Fall werden die Berechnungen sehr kompliziert. Um diese Komplikation zu umgehen, besteht ein Ansatz darin, mehrere Beweismittel zu "entkoppeln" und jedes einzelne Beweismittel als unabhängig zu behandeln. Dieser Ansatz wird deshalb auch als naiv Bayes.
P(Outcome|Multiple Evidence) =
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)
Viele Menschen erinnern sich an diesen Begriff:
P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
P(Evidence)
An dieser Gleichung gibt es einiges zu beachten:
- Wenn die Wahrscheinlichkeit (Evidenz|Ergebnis) 1 ist, dann multiplizieren wir einfach mit 1.
- Wenn die Wahrscheinlichkeit (eines bestimmten Beweises|Ergebnisses) 0 ist, dann wird die gesamte Wahrscheinlichkeit 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 darauf verzichten, es zu berechnen.
- Die Intuition hinter der Multiplikation mit dem vor ist, dass wir häufigeren Ereignissen eine hohe Wahrscheinlichkeit und unwahrscheinlichen Ereignissen eine niedrige Wahrscheinlichkeit geben. Diese werden auch als
base rates
und sie sind eine Möglichkeit, unsere vorhergesagten Wahrscheinlichkeiten zu skalieren.
Wie wendet man NaiveBayes zur Vorhersage eines Ergebnisses an?
Führen Sie einfach die obige Formel für jedes mögliche Ergebnis aus. Da wir versuchen, die einordnen. wird jedes Ergebnis als class
und es hat eine class label.
Unsere Aufgabe ist es, die Beweise zu betrachten, zu prüfen, wie wahrscheinlich es ist, dass es sich um diese oder jene Klasse handelt, und jeder Entität ein Etikett zuzuweisen. Auch hier wählen wir einen sehr einfachen Ansatz: Die Klasse mit der höchsten Wahrscheinlichkeit wird zum "Gewinner" erklärt, und dieses Klassenlabel wird dieser Kombination von Beweisen zugewiesen.
Beispiel Obst
Probieren wir es an einem Beispiel aus, um unser Verständnis zu verbessern: Der Auftraggeber fragte nach einem Beispiel für die Identifizierung von "Obst".
Nehmen wir an, wir haben Daten über 1000 Obststücke. Sie sind zufällig Banane , Orange oder eine Andere Früchte . Wir kennen 3 Merkmale für jede Frucht:
- Ob es sich um Long
- Ob es sich um Sweet and
- Wenn seine Farbe Gelb ist.
Dies ist unser "Trainingssatz". Damit werden wir den Typ eines beliebigen neu Früchte, 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 eine Menge Dinge über unsere Obstsammlung vorausberechnen.
Die sogenannten "Prior"-Wahrscheinlichkeiten. (Wenn wir keine der Fruchteigenschaften kennen würden, wäre dies unsere Vermutung). base 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 von "Likelihood" (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 ist eine Frucht zu klassifizieren?
Nehmen wir an, man gibt uns die Eigenschaften einer unbekannten Frucht und bittet uns, 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 3 Ergebnisse nacheinander durchgehen. Dann wählen wir die höchste Wahrscheinlichkeit aus und "klassifizieren" unsere unbekannte Frucht als zu der Klasse gehörig, die auf der Grundlage unserer vorherigen Erkenntnisse (unserer 1000 Früchte umfassenden Trainingsmenge) die höchste Wahrscheinlichkeit hatte:
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 einem überwältigenden Vorsprung ( 0.252 >> 0.01875
), stufen wir diese süße/lange/gelbe Frucht als wahrscheinlich eine Banane ein.
Warum ist der Bayes-Klassifikator so beliebt?
Sehen Sie sich an, worauf es letztendlich hinausläuft. Nur ein bisschen Zählen und Multiplizieren. Wir können all diese Terme vorberechnen, und so wird das Klassifizieren einfach, schnell und effizient.
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 das Klassenlabel mit der höchsten Zahl zu, und Sie sind fertig.
Trotz des Namens erweist sich Naive Bayes in bestimmten Anwendungen als hervorragend. Die Textklassifizierung ist ein Bereich, in dem es wirklich glänzt.