webentwicklung-frage-antwort-db.com.de

Eine einfache Erklärung der Naive Bayes-Klassifikation

Es fällt mir schwer, den Prozess von Naive Bayes zu verstehen, und ich habe mich gefragt, ob jemand es mit einem einfachen schrittweisen Prozess auf Englisch erklären kann. Ich verstehe, dass Vergleiche nach aufgetretenen Zeiten wahrscheinlich sind, aber ich habe keine Ahnung, wie die Trainingsdaten mit dem tatsächlichen Datensatz zusammenhängen.

Bitte erläutern Sie mir, welche Rolle das Trainingsset spielt. Ich gebe hier ein sehr einfaches Beispiel für Früchte, wie zum Beispiel 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
531
Jaggerjack

Ihre Frage, so wie ich sie verstehe, ist in zwei Teile unterteilt. Teil 1 ist, dass Sie den Naive Bayes-Klassifikator besser verstehen müssen und Teil 2 ist die Verwirrung um das Trainingsset.

Im Allgemeinen müssen alle maschinellen Lernalgorithmen für überwachte Lernaufgaben wie Klassifizierung, Vorhersage usw. oder für nicht überwachte Lernaufgaben wie Clustering trainiert werden.

Während des Trainingsschrittes 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 usw. (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 also in einen Entwicklungssatz (Trainingssatz + Entwickler-Testsatz) und einen Testsatz (oder Evaluierungssatz) aufteilen. Denken Sie daran, dass Ihr grundlegendes Ziel darin besteht, dass Ihr System neue Eingaben lernt und klassifiziert, die es zuvor weder im Dev-Set noch im Test-Set gesehen hat.

Der Testsatz hat normalerweise dasselbe Format wie der Trainingssatz. Es ist jedoch sehr wichtig, dass sich das Test-Set vom Trainingskorpus unterscheidet: Wenn wir das Training-Set einfach als Test-Set wiederverwenden, wird ein Modell, das sich einfach seine Eingabe merkt, ohne zu lernen, wie man neue Beispiele verallgemeinert, irreführend aufgenommen Highscores.

Im Allgemeinen können beispielsweise 70% unserer Daten als Trainingssatzfälle verwendet werden. Denken Sie auch daran, den Originalsatz nach dem Zufallsprinzip in Trainings- und Testsätze zu unterteilen .

Jetzt komme ich zu deiner anderen Frage über Naive Bayes.

Betrachten Sie das folgende Beispiel, um das Konzept der naiven Bayes-Klassifizierung zu demonstrieren:

enter image description here

Wie angegeben, können die Objekte entweder als GREEN oder RED klassifiziert werden. Unsere Aufgabe ist es, neue Fälle beim Eintreffen zu klassifizieren, d. H. Zu entscheiden, zu welcher Klassenbezeichnung sie gehören, basierend auf den aktuell vorhandenen Objekten.

Da es doppelt so viele GREEN Objekte gibt wie RED, ist es vernünftig anzunehmen, dass ein neuer Fall (der noch nicht beobachtet wurde) doppelt so wahrscheinlich eine Mitgliedschaft GREEN hat als RED. In der Bayes'schen Analyse ist dieser Glaube als die vorherige Wahrscheinlichkeit bekannt. Vorherige Wahrscheinlichkeiten basieren auf früheren Erfahrungen, in diesem Fall dem Prozentsatz von GREEN und RED 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, von denen 40GREEN und 20 RED sind, sind unsere vorherigen Wahrscheinlichkeiten für die Klassenzugehörigkeit:

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 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, zeichnen wir einen Kreis um X, der eine a priori zu wählende Anzahl von Punkten umfasst, unabhängig von ihrer Klassenbezeichnung. Dann berechnen wir die Anzahl der Punkte im Kreis, die zu jeder Klassenbezeichnung gehören. Daraus berechnen wir die Wahrscheinlichkeit:

enter image description here

enter image description here

Aus der obigen Abbildung ist klar, dass die Wahrscheinlichkeit von X bei GREEN kleiner ist als die Wahrscheinlichkeit von X bei RED, da der Kreis 1GREEN enthält und 3RED. Somit:

enter image description here

enter image description here

Obwohl die vorherigen Wahrscheinlichkeiten anzeigen, dass X zu GREEN gehören kann (vorausgesetzt, dass es doppelt so viele GREEN im Vergleich zu RED gibt), gibt die Wahrscheinlichkeit etwas anderes an; dass die Klassenmitgliedschaft von XRED ist (vorausgesetzt, dass sich mehr RED Objekte in der Nähe von X als GREEN befinden). In der Bayes'schen Analyse wird die endgültige Klassifikation durch Kombinieren beider Informationsquellen, d. H. Des Prior und der Wahrscheinlichkeit, erzeugt, um eine posteriore Wahrscheinlichkeit unter Verwendung der sogenannten Bayes'schen Regel (benannt nach Rev. Thomas Bayes 1702-1761) zu bilden.

enter image description here

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

664
Yavar

Mir ist klar, dass dies eine alte Frage ist, mit einer festgelegten Antwort. Der Grund, warum ich poste, ist, dass die akzeptierte Antwort viele Elemente von k-NN ( k - nächste Nachbarn), einem anderen Algorithmus, enthält.

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 Euklidische Distanz oder Kosinusdistanz 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, beschreibe ich die Ideen und Schritte wie folgt. Ich werde versuchen, es mit so wenig Gleichungen wie möglich und im Klartext zu machen.

Erstens: Bedingte Wahrscheinlichkeits- und Bayes-Regel

Bevor jemand die Nuancen von Naive Bayes verstehen und einschätzen kann, muss er zunächst 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 groß ist die Wahrscheinlichkeit, dass etwas passiert , vorausgesetzt, dass etwas anderes bereits passiert ist.

Nehmen wir an, es gibt ein Ergebnis O. Und ein Beweis E. Aus der Art und Weise, wie diese Wahrscheinlichkeiten definiert sind: Die Wahrscheinlichkeit, dass sowohl das Ergebnis O als auch den Beweis E hat, ist: (Wahrscheinlichkeit von O auftretend) multipliziert mit (Prob von E vorausgesetzt, dass O aufgetreten ist)

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 es sich bei dieser Person um eine Demokratin handelt? Bedingte Wahrscheinlichkeit kann uns helfen, darauf zu antworten.

Wahrscheinlichkeit von (Demokratin und Senatorin) = Prob (Senatorin ist Demokratin) multipliziert mit der bedingten Wahrscheinlichkeit, weiblich zu sein, vorausgesetzt, sie sind Demokraten.

  P(Democrat & Female) = P(Democrat) * P(Female | Democrat) 

Wir könnten genau das Gleiche berechnen, und zwar in umgekehrter Richtung:

  P(Democrat & Female) = P(Female) * P(Democrat | Female) 

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 oft bestimmte Beweise beobachtet werden , wenn ein bekanntes Ergebnis vorliegt . Wir müssen diese bekannte Tatsache verwenden, um das Gegenteil zu berechnen, um die Wahrscheinlichkeit zu berechnen, dass dieses Ergebnis auftritt, wenn die Beweise vorliegen.

P(Outcome given that we know some Evidence) = P(Evidence given that we know the Outcome) times Prob(Outcome), scaled by the P(Evidence)

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 einen Beweis gesprochen. In Wirklichkeit müssen wir ein gegebenes Ergebnis vorhersagen mehrere Beweise 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 ist, warum dies naive Bayes genannt wird.

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 wie folgt:

                      P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
                                         P(Evidence)

Beachten Sie ein paar Dinge zu dieser Gleichung:

  • Wenn der Prob (Beweis | Ergebnis) 1 ist, dann multiplizieren wir nur mit 1.
  • Wenn der Prob (ein bestimmter Beweis) 0 ist, dann ist der gesamte Prob. wird zu 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 vor ist, dass wir häufigeren Ergebnissen eine hohe Wahrscheinlichkeit und unwahrscheinlichen Ergebnissen eine niedrige Wahrscheinlichkeit geben. Diese werden auch base rates genannt und sind eine Möglichkeit, unsere vorhergesagten Wahrscheinlichkeiten zu skalieren.

Wie kann man NaiveBayes anwenden, 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 class bezeichnet, und es hat einen class label. wahrscheinlich ist es diese oder jene Klasse und weist jeder Entität eine Bezeichnung zu. Auch hier haben 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.

Frucht Beispiel

Probieren wir es an einem Beispiel aus, um unser Verständnis zu verbessern: Das OP hat nach einem Beispiel für die Identifizierung von Früchten gefragt.

Nehmen wir an, wir haben Daten zu 1000 Fruchtstücken. Sie sind Banane, Orange oder einige andere Frucht. Wir kennen 3 Eigenschaften von jeder Frucht:

  1. Ob es lang ist
  2. Ob es süß ist und
  3. Wenn seine Farbe Gelb ist.

Dies ist unser "Trainingsset". Wir werden dies verwenden, um den Typ einer neuen Frucht vorherzusagen, der 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 Obstkollektion vorberechnen.

Die sogenannten "Prior" -Wahrscheinlichkeiten. (Wenn wir keines der Fruchtattribute kennen würden, würden wir es erraten.) Dies sind unsere base rates.

 P(Banana)      = 0.5 (500/1000)
 P(Orange)      = 0.3
 P(Other Fruit) = 0.2

Wahrscheinlichkeit von "Evidence"

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 ist eine Frucht zu klassifizieren?

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 (unser 1000-Früchte-Trainingssatz):

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ältigendem Abstand (0.252 >> 0.01875) stufen wir diese süße/lange/gelbe Frucht als Banane ein.

Warum ist Bayes Classifier so beliebt?

Schauen Sie, worauf es schließlich ankommt. Nur ein bisschen Zählen und Multiplizieren. Wir können all diese Begriffe vorberechnen, sodass die Klassifizierung einfach, schnell und effizient wird.

Let z = 1 / P(evidence). Nun 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 desjenigen zu, der die höchste Zahl ist, und Sie sind fertig.

Trotz des Namens erweist sich Naive Bayes in bestimmten Anwendungen als ausgezeichnet. Textklassifizierung ist ein Bereich, in dem es wirklich scheint.

Hoffe, das hilft beim Verständnis der Konzepte hinter dem Naive Bayes-Algorithmus.

1035
Ram Narasimhan

Naive Bayes: Naive Bayes unterliegt der Überwachung des maschinellen Lernens, das zur Klassifizierung von Datensätzen verwendet wurde. Es wird verwendet, um Dinge auf der Grundlage seines Vorwissens und seiner Unabhängigkeitsannahmen vorherzusagen.

Sie nennen es naiv , weil seine Annahmen (es wird davon ausgegangen, dass alle Funktionen im Datensatz gleich wichtig und unabhängig sind) wirklich optimistisch sind und in den meisten Fällen selten zutreffen reale Anwendungen.

Es ist der Klassifizierungsalgorithmus, der die Entscheidung für den unbekannten Datensatz trifft. Es basiert auf Bayes-Theorem , das die Wahrscheinlichkeit eines Ereignisses auf der Grundlage seines Vorwissens beschreibt.

Das folgende Diagramm zeigt, wie naiv Bayes funktioniert

enter image description here

Formel zur Vorhersage von NB:

enter image description here

Wie benutzt man den Naive Bayes Algorithmus?

Nehmen wir ein Beispiel, wie N.B 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.

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.

Weitere Informationen finden Sie in Blog.

Siehe GitHub Repository Naive-Bayes-Beispiele

17
jitsm555

Ram Narasimhan erklärte das Konzept sehr anschaulich. Nachfolgend finden Sie 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 verwenden werden
enter image description here
Wenn wir im obigen Datensatz die Hypothese = {"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'} angeben, 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, der in den Kommentaren erklärt wird, 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 __== "__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

Hoffe, es hilft beim besseren Verständnis des Problems

frieden

17

Ich versuche die Bayes-Regel mit einem Beispiel zu erklären.

Angenommen, Sie wissen, dass 10% der Menschen Raucher sind. Sie wissen auch, dass 90% der Raucher Männer sind und 80% über 20 Jahre alt sind.

Jetzt sehen Sie jemanden, der ein Mann und 15 Jahre alt ist. Sie möchten wissen, ob er Raucher ist:

 X = smoker | he is a man and under 20

Da Sie wissen, dass 10% der Menschen Raucher sind, ist Ihre anfängliche Schätzung 10% ( vorherige Wahrscheinlichkeit , ohne etwas über die Person zu wissen), aber die andere Beweise (dass er ein Mann ist und 15 Jahre alt) können diese Vermutung beeinflussen.

Jeder Beweis kann diese Chance erhöhen oder verringern. Zum Beispiel kann die Tatsache, dass er ein Mann ist , die Chance erhöhen , vorausgesetzt, dass dieser Prozentsatz (ein Mann zu sein) unter den Nichtrauchern niedriger ist, zum Beispiel 40%. Mit anderen Worten, ein Mann zu sein, muss ein guter Indikator dafür sein, dass man Raucher ist und kein Nichtraucher.

Wir können diesen Beitrag auf andere Weise zeigen. Für jedes Merkmal müssen Sie die Gemeinsamkeit (Wahrscheinlichkeit) dieses Merkmals (f) allein mit seiner Gemeinsamkeit unter den gegebenen Bedingungen vergleichen. (P(f) vs. P(f | x). Wenn wir zum Beispiel wissen, dass die Wahrscheinlichkeit, ein Mann zu sein, in einer Gesellschaft bei 90% liegt und 90% der Raucher auch Männer sind, hilft es uns nicht, zu wissen, dass jemand ein Mann ist (10% * (90% / 90%) = 10%). Aber wenn Männer zu 40% der Gesellschaft, aber zu 90% der Raucher beitragen, erhöht das Wissen, dass jemand ein Mann ist, die Wahrscheinlichkeit, Raucher zu werden (10% * (90% / 40%) = 22.5% ). Ebenso, wenn die Wahrscheinlichkeit von Ein Mann zu sein war zu 95% in der Gesellschaft, unabhängig davon, dass der Prozentsatz der Männer unter den Rauchern hoch ist (90%)! Der Beweis, dass jemand ein Mann ist, verringert die Wahrscheinlichkeit, dass er ein Raucher ist! (10% * (90% / 95%) = 9.5%) .

Also haben wir:

P(X) = 
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 ausgegangen sind, dass ein Mann ist und unter 20 unabhängige Merkmale sind, also haben wir sie multipliziert, das bedeutet Zu wissen, dass jemand unter 20 ist, hat keinen Einfluss darauf, dass er ein Mann oder eine Frau ist. Aber es mag nicht wahr sein, zum Beispiel sind die meisten Jugendlichen in einer Gesellschaft Männer ...

Um diese Formel in einem Klassifikator zu verwenden

Der Klassifikator ist mit einigen Merkmalen versehen (ein Mann und unter 20 Jahre alt) und es muss entschieden werden, ob er Raucher ist oder nicht. Es verwendet die obige Formel, um das zu finden. Zur Bereitstellung der erforderlichen Wahrscheinlichkeiten (90%, 10%, 80% ...) wird das Trainingsset verwendet. Beispielsweise werden die Personen im Trainingsset gezählt, die Raucher sind, und es wird festgestellt, dass sie 10% der Stichprobe beitragen. Dann für Raucher überprüfen, wie viele von ihnen Männer oder Frauen sind .... wie viele über 20 oder unter 20 sind ....

13
Ahmad