576 Stimmen

Eine einfache Erklärung der Naive Bayes-Klassifikation

Es fällt mir schwer, das Verfahren von Naive Bayes zu verstehen, und ich frage mich, ob jemand es mit einem einfachen Schritt-für-Schritt-Verfahren auf Englisch erklären könnte. Ich verstehe, dass es Vergleiche durch Zeiten als Wahrscheinlichkeit auftritt, aber ich habe keine Ahnung, wie die Trainingsdaten mit dem tatsächlichen Datensatz verbunden sind.

Bitte erläutern Sie mir, welche Rolle das Trainingsset spielt. Ich gebe hier ein sehr einfaches Beispiel für Früchte, wie z.B. Banane

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

1084voto

Ram Narasimhan Punkte 21998

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:

  1. Ob es sich um Long
  2. Ob es sich um Sweet and
  3. 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.

683voto

Yavar Punkte 11843

Ihre Frage, so wie ich sie verstehe, besteht aus zwei Teilen: Teil eins ist, dass Sie ein besseres Verständnis des Naive-Bayes-Klassifikators benötigen, und Teil zwei ist die Verwirrung rund um die Trainingsmenge.

Im Allgemeinen müssen alle Algorithmen für maschinelles Lernen für überwachte Lernaufgaben wie Klassifizierung, Vorhersage usw. oder für unüberwachte Lernaufgaben wie Clustering trainiert werden.

Während des Trainingsschritts werden die Algorithmen mit einem bestimmten Eingabedatensatz (Trainingsset) trainiert, so dass wir sie später mit unbekannten Eingaben (die sie noch nie zuvor gesehen haben) testen können, für die sie auf der Grundlage des Gelernten eine Klassifizierung oder Vorhersage usw. vornehmen können (im Falle des überwachten Lernens). Darauf beruhen die meisten Techniken des maschinellen Lernens wie neuronale Netze, SVM, Bayesian usw.

Bei einem allgemeinen Projekt zum maschinellen Lernen müssen Sie Ihre Eingabemenge grundsätzlich in eine Entwicklungsmenge (Trainingsmenge + Entwicklungs-Testmenge) und eine Testmenge (oder Bewertungsmenge) aufteilen. Denken Sie daran, dass Ihr grundlegendes Ziel darin besteht, dass Ihr System neue Eingaben lernt und klassifiziert, die es zuvor weder in der Entwicklungs- noch in der Testmenge gesehen hat.

Der Testsatz hat in der Regel das gleiche Format wie der Trainingssatz. Es ist jedoch sehr wichtig, dass sich der Testsatz vom Trainingskorpus unterscheidet: Wenn wir einfach würde ein Modell, das seine Eingaben einfach auswendig lernt, ohne zu lernen, wie es auf neue Beispiele verallgemeinert werden kann, irreführend hohe Punktzahlen erhalten.

Im Allgemeinen können 70 % unserer Daten als Trainingssätze verwendet werden. Denken Sie auch daran, den ursprünglichen Datensatz in einen Trainings- und einen Testsatz zu unterteilen zufällig .

Nun komme ich zu Ihrer anderen Frage zu Naive Bayes.

Zur Veranschaulichung des Konzepts der Naïve-Bayes-Klassifikation dient das folgende Beispiel:

enter image description here

Wie bereits erwähnt, können die Objekte wie folgt klassifiziert werden GREEN o RED . Unsere Aufgabe ist es, neue Fälle zu klassifizieren, wenn sie eintreffen, d. h. zu entscheiden, zu welchem Klassenlabel sie gehören, und zwar auf der Grundlage der bereits vorhandenen Objekte.

Da es doppelt so viele GREEN Objekte als RED ist es vernünftig anzunehmen, dass ein neuer Fall (der noch nicht beobachtet wurde) eine doppelt so hohe Wahrscheinlichkeit der Mitgliedschaft aufweist GREEN statt RED . In der Bayes'schen Analyse wird diese Überzeugung als Vorwahrscheinlichkeit bezeichnet. Prioritätswahrscheinlichkeiten beruhen auf früheren Erfahrungen, in diesem Fall auf dem Prozentsatz der GREEN y RED Objekte und werden oft dazu verwendet, Ergebnisse vorherzusagen, bevor sie tatsächlich eintreten.

Wir können also schreiben:

Vorrangige Wahrscheinlichkeit von GREEN : number of GREEN objects / total number of objects

Vorrangige Wahrscheinlichkeit von RED : number of RED objects / total number of objects

Da es sich um eine Gesamtzahl von 60 Objekte, 40 davon sind GREEN und 20 RED sind unsere vorherigen Wahrscheinlichkeiten für die Klassenzugehörigkeit:

Prioritätswahrscheinlichkeit für GREEN : 40 / 60

Prioritätswahrscheinlichkeit für RED : 20 / 60

Nachdem wir unsere vorherige Wahrscheinlichkeit formuliert haben, sind wir nun bereit, ein neues Objekt zu klassifizieren ( WHITE Kreis in der nachstehenden Abbildung). Da die Objekte gut geclustert sind, ist es vernünftig anzunehmen, dass je mehr GREEN (oder RED ) Objekte in der Nähe von X sind, desto wahrscheinlicher ist es, dass die neuen Fälle zu dieser bestimmten Farbe gehören. Um diese Wahrscheinlichkeit zu messen, ziehen wir einen Kreis um X, der eine (a priori zu wählende) Anzahl von Punkten unabhängig von ihren Klassenetiketten umfasst. Dann berechnen wir die Anzahl der Punkte im Kreis, die zu jedem Klassenlabel gehören. Daraus berechnen wir die Wahrscheinlichkeit:

enter image description here

enter image description here

Aus der obigen Abbildung ist ersichtlich, dass die Wahrscheinlichkeit von X gegeben GREEN kleiner ist als die Wahrscheinlichkeit von X gegeben RED da der Kreis die folgende Fläche umfasst 1 GREEN Objekt und 3 RED ein. So:

enter image description here

enter image description here

Obwohl die vorherigen Wahrscheinlichkeiten darauf hindeuten, dass X kann gehören zu GREEN (angesichts der Tatsache, dass es doppelt so viele GREEN im Vergleich zu RED ), deutet die Wahrscheinlichkeit auf etwas anderes hin: dass die Klassenzugehörigkeit von X est RED (angesichts der Tatsache, dass es mehr RED Objekte in der Nähe von X als GREEN ). Bei der Bayes'schen Analyse wird die endgültige Klassifizierung durch die Kombination beider Informationsquellen, d. h. der Prior- und der Wahrscheinlichkeitsdaten, unter Verwendung der so genannten Bayes'schen Regel (benannt nach Rev. Thomas Bayes 1702-1761) zu einer Posteriorwahrscheinlichkeit erstellt.

enter image description here

Schließlich klassifizieren wir X als RED da seine Klassenzugehörigkeit die größte Posterior-Wahrscheinlichkeit erreicht.

21voto

Jitesh Mohite Punkte 23258

Naive Bayes gehört zum überwachenden maschinellen Lernen, mit dem Klassifizierungen von Datensätzen vorgenommen werden. Es wird verwendet, um Dinge auf der Grundlage von Vorwissen und Unabhängigkeitsannahmen vorherzusagen.

Sie nennen es naiv weil seine Annahmen (er geht davon aus, dass alle Merkmale im Datensatz gleich wichtig und unabhängig sind) sehr optimistisch sind und in den meisten realen Anwendungen nicht zutreffen.

Es handelt sich um einen Klassifizierungsalgorithmus, der die Entscheidung für einen unbekannten Datensatz trifft. Er basiert auf Bayes-Theorem die die Wahrscheinlichkeit eines Ereignisses auf der Grundlage seines Vorwissens beschreiben.

Das nachstehende Diagramm zeigt, wie Naive Bayes funktioniert

enter image description here

Formel zur Vorhersage von NB:

enter image description here

Wie verwendet man den Naive Bayes Algorithmus?

Nehmen wir ein Beispiel für die Funktionsweise von N.B.

Schritt 1: Zuerst ermitteln wir die Wahrscheinlichkeitstabelle, die die Wahrscheinlichkeit von Ja oder Nein im unten stehenden Diagramm zeigt. Schritt 2: Finden Sie die posteriore Wahrscheinlichkeit für jede Klasse.

enter image description here

Problem: Find out the possibility of whether the player plays in Rainy condition?

P(Yes|Rainy) = P(Rainy|Yes) * P(Yes) / P(Rainy)

P(Rainy|Yes) = 2/9 = 0.222
P(Yes) = 9/14 = 0.64
P(Rainy) = 5/14 = 0.36

Now, P(Yes|Rainy) = 0.222*0.64/0.36 = 0.39 which is lower probability which means chances of the match played is low.

Für weitere Informationen siehe Blog.

Siehe GitHub-Repository Naive-Bayes-Beispiele

19voto

Ram Narasimhan hat das Konzept sehr schön erklärt. Im Folgenden finden Sie eine alternative Erklärung anhand eines Codebeispiels für Naive Bayes in Aktion
Sie verwendet ein Beispielproblem aus diesem Buch auf Seite 351
Dies ist der Datensatz, den wir verwenden werden
enter image description here
Wenn wir im obigen Datensatz die Hypothese = {"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'} wie hoch ist dann die Wahrscheinlichkeit, dass er einen Computer kauft oder nicht kauft.
Der folgende Code beantwortet genau diese Frage.
Erstellen Sie einfach eine Datei mit dem Namen new_dataset.csv und fügen Sie den folgenden Inhalt ein.

Age,Income,Student,Creadit_Rating,Buys_Computer
<=30,high,no,fair,no
<=30,high,no,excellent,no
31-40,high,no,fair,yes
>40,medium,no,fair,yes
>40,low,yes,fair,yes
>40,low,yes,excellent,no
31-40,low,yes,excellent,yes
<=30,medium,no,fair,no
<=30,low,yes,fair,yes
>40,medium,yes,fair,yes
<=30,medium,yes,excellent,yes
31-40,medium,no,excellent,yes
31-40,high,yes,fair,yes
>40,medium,no,excellent,no

Hier ist der Code die Kommentare erklären alles, was wir hier tun! [python]

import pandas as pd 
import pprint 

class Classifier():
    data = None
    class_attr = None
    priori = {}
    cp = {}
    hypothesis = None

    def __init__(self,filename=None, class_attr=None ):
        self.data = pd.read_csv(filename, sep=',', header =(0))
        self.class_attr = class_attr

    '''
        probability(class) =    How many  times it appears in cloumn
                             __________________________________________
                                  count of all class attribute
    '''
    def calculate_priori(self):
        class_values = list(set(self.data[self.class_attr]))
        class_data =  list(self.data[self.class_attr])
        for i in class_values:
            self.priori[i]  = class_data.count(i)/float(len(class_data))
        print "Priori Values: ", self.priori

    '''
        Here we calculate the individual probabilites 
        P(outcome|evidence) =   P(Likelihood of Evidence) x Prior prob of outcome
                               ___________________________________________
                                                    P(Evidence)
    '''
    def get_cp(self, attr, attr_type, class_value):
        data_attr = list(self.data[attr])
        class_data = list(self.data[self.class_attr])
        total =1
        for i in range(0, len(data_attr)):
            if class_data[i] == class_value and data_attr[i] == attr_type:
                total+=1
        return total/float(class_data.count(class_value))

    '''
        Here we calculate Likelihood of Evidence and multiple all individual probabilities with priori
        (Outcome|Multiple Evidence) = P(Evidence1|Outcome) x P(Evidence2|outcome) x ... x P(EvidenceN|outcome) x P(Outcome)
        scaled by P(Multiple Evidence)
    '''
    def calculate_conditional_probabilities(self, hypothesis):
        for i in self.priori:
            self.cp[i] = {}
            for j in hypothesis:
                self.cp[i].update({ hypothesis[j]: self.get_cp(j, hypothesis[j], i)})
        print "\nCalculated Conditional Probabilities: \n"
        pprint.pprint(self.cp)

    def classify(self):
        print "Result: "
        for i in self.cp:
            print i, " ==> ", reduce(lambda x, y: x*y, self.cp[i].values())*self.priori[i]

if __name__ == "__main__":
    c = Classifier(filename="new_dataset.csv", class_attr="Buys_Computer" )
    c.calculate_priori()
    c.hypothesis = {"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}

    c.calculate_conditional_probabilities(c.hypothesis)
    c.classify()

Ausgabe:

Priori Values:  {'yes': 0.6428571428571429, 'no': 0.35714285714285715}

Calculated Conditional Probabilities: 

{
 'no': {
        '<=30': 0.8,
        'fair': 0.6, 
        'medium': 0.6, 
        'yes': 0.4
        },
'yes': {
        '<=30': 0.3333333333333333,
        'fair': 0.7777777777777778,
        'medium': 0.5555555555555556,
        'yes': 0.7777777777777778
      }
}

Result: 
yes  ==>  0.0720164609053
no  ==>  0.0411428571429

14voto

Ahmad Punkte 7195

Ich versuche, die Bayes-Regel anhand eines Beispiels zu erklären.

Wie hoch ist die Wahrscheinlichkeit, dass eine zufällig aus der Gesellschaft ausgewählte Person Raucher ist?

Sie können mit 10 % antworten, und nehmen wir an, dass das richtig ist.

Was aber, wenn ich sage, dass die zufällige Person ein man und ist 15 Jahre alt?

Sie sagen vielleicht 15 oder 20 %, aber warum?

Vielmehr versuchen wir, unsere ursprüngliche Vermutung durch neue Beweise zu aktualisieren ( P(smoker) vs. P(smoker | evidence) ). Die Bayes-Regel ist eine Möglichkeit, diese beiden Wahrscheinlichkeiten in Beziehung zu setzen.

P(smoker | evidence) = P(smoker)* p(evidence | smoker)/P(evidence)

Jeder Beweis kann diese Chance erhöhen oder verringern. Zum Beispiel die Tatsache, dass er ein Mann ist Mai die Wahrscheinlichkeit zu erhöhen, sofern dieser Prozentsatz (ein Mann zu sein) unter den Nichtrauchern geringer ist.

Mit anderen Worten: Ein Mann zu sein, muss ein Indikator dafür sein, dass man eher Raucher als Nichtraucher ist. Wenn also ein Beweis ein Indikator für etwas ist, erhöht er die Wahrscheinlichkeit.

Aber woher wissen wir, dass dies ein Indikator ist?

Für jedes Merkmal können Sie die Häufigkeit (Wahrscheinlichkeit) dieses Merkmals unter den gegebenen Bedingungen mit seiner Häufigkeit allein vergleichen. ( P(f | x) vs. P(f)) .

P(smoker | evidence) / P(smoker) = P(evidence | smoker)/P(evidence)

Wenn wir zum Beispiel wissen, dass 90 % der Raucher Männer sind, reicht das noch nicht aus, um zu sagen, ob ein Mann ein Indikator dafür ist, dass er Raucher ist oder nicht. Wenn zum Beispiel die Wahrscheinlichkeit, ein Mann zu sein, in der Gesellschaft ebenfalls 90 % beträgt, dann hilft uns das Wissen, dass jemand ein Mann ist, nicht weiter ((90% / 90%) = 1 . Aber wenn Männer 40% der Gesellschaft ausmachen, aber 90% der Raucher, dann erhöht das Wissen, dass jemand ein Mann ist, die Wahrscheinlichkeit, dass er ein Raucher ist (90% / 40%) = 2.25 und erhöht somit die ursprüngliche Schätzung (10%) um 2,25, was 22,5% ergibt.

Wenn jedoch die Wahrscheinlichkeit, ein Mann zu sein, in der Gesellschaft 95 % beträgt, dann verringert der Hinweis, dass jemand ein Mann ist, die Wahrscheinlichkeit, dass er ein Raucher ist, ungeachtet der Tatsache, dass der Anteil der Männer unter den Rauchern hoch ist (90 %)! (90% / 95%) = 0.95) .

Also haben wir:

P(smoker | f1, f2, f3,... ) = P(smoker) * contribution of f1* contribution of f2 *... 
=
P(smoker)* 
(P(being a man | smoker)/P(being a man))*
(P(under 20 | smoker)/ P(under 20))

Beachten Sie, dass wir in dieser Formel davon ausgehen, dass ein Mann sein y unter 20 Jahre alt sein sind unabhängige Merkmale, also haben wir sie multipliziert. Das bedeutet, dass das Wissen, dass jemand unter 20 ist, keine Auswirkung auf die Einschätzung hat, ob er ein Mann oder eine Frau ist. Aber vielleicht stimmt das nicht, vielleicht sind zum Beispiel die meisten Jugendlichen in einer Gesellschaft Männer...

Um diese Formel in einem Klassifikator zu verwenden

Der Klassifikator erhält einige Merkmale (männlich und unter 20 Jahre alt) und muss entscheiden, ob er Raucher ist oder nicht (dies sind zwei Klassen). Er verwendet die obige Formel, um die Wahrscheinlichkeit jeder Klasse anhand der Evidenz (Merkmale) zu berechnen, und ordnet der Eingabe die Klasse mit der höchsten Wahrscheinlichkeit zu. Um die erforderlichen Wahrscheinlichkeiten (90 %, 10 %, 80 %...) zu ermitteln, verwendet es die Trainingsmenge. Es zählt beispielsweise die Personen in der Trainingsmenge, die Raucher sind, und stellt fest, dass sie 10 % der Stichprobe ausmachen. Dann wird für die Raucher überprüft, wie viele von ihnen Männer oder Frauen sind .... wie viele über 20 oder unter 20 sind....Mit anderen Worten, es versucht, die Wahrscheinlichkeitsverteilung der Merkmale für jede Klasse auf der Grundlage der Trainingsdaten zu erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X