Frage

Ich arbeite an einer Implementierung eines Bayes-Klassifikator. Programmierung Collective Intelligence dieses Thema einleitet durch die Beschreibung Bayes Theorem wie:

Pr(A | B) = Pr(B | A) x Pr(A)/Pr(B)

Neben einem speziellen Beispiel relevant Dokumentenklassifizierung:

Pr(Category | Document) = Pr(Document | Category) x Pr(Category) / Pr(Document)

Ich habe gehofft, jemand mich hier verwendet, um die Notation erklären könnte, was zu tun Pr(A | B) und Pr(A) bedeuten? Es sieht aus wie eine Art von Funktion, aber was ist dann das Rohr tut ( „|“) Mittelwert, etc?

War es hilfreich?

Lösung

  • Pr (A | B) = Wahrscheinlichkeit von A gegeben was für B ist bereits geschehen
  • Pr (A) = Wahrscheinlichkeit von A passiert

Aber das oben ist in Bezug auf die Berechnung der bedingten Wahrscheinlichkeit. Was Sie wollen, ist ein Klassifizierer, die dieses Prinzip verwendet, um zu entscheiden, ob etwas zu einer Kategorie gehört, auf der vorherige Wahrscheinlichkeit basiert.

Siehe http://en.wikipedia.org/wiki/Naive_Bayes_classifier für ein komplettes Beispiel

Andere Tipps

Ich glaube, sie haben Sie sich auf die Grundlagen abgedeckt.

Pr(A | B) = Pr(B | A) x Pr(A)/Pr(B)

lautet: die Wahrscheinlichkeit von A gegeben B ist das gleiche wie die Wahrscheinlichkeit von B gegeben A multipliziert mit der Wahrscheinlichkeit von A mit der Wahrscheinlichkeit von B. geteilt Es ist in der Regel verwendet, wenn Sie die Wahrscheinlichkeit von B messen können und Sie versuchen, Figur Sie heraus, wenn B führt uns in A. Oder, mit anderen Worten, zu glauben, wir kümmern uns wirklich über A, aber wir können messen B mehr direkt, also beginnen wir mit dem, was wir messen können.

Lassen Sie mich Ihnen eine Ableitung, die diese einfacher für das Schreiben von Code macht. Es kommt von Judea Pearl . Ich kämpfte mit diesem ein wenig, aber nachdem ich erkannt, wie Perle hilft uns, die Theorie in die Code einschalten, wird das Licht eingeschaltet für mich.

Vor Odds:

O(H) = P(H) / 1 - P(H)

Likelihood Ratio:

L(e|H) = P(e|H) / P(e|¬H)

posterior Odds:

O(H|e) = L(e|H)O(H)

Im Englischen sagen wir, dass die Chancen, etwas, das Sie (für Hypothese H) interessiert sind, sind einfach die Anzahl der Sie etwas Wahres durch die Zeiten geteilt sein finden Sie es finden nicht wahr zu sein. Also, sagen wir ein Haus jeden Tag von 10.000 beraubt wird. Das bedeutet, dass Sie eine 1 / 10.000 Chance, beraubt haben, ohne andere Beweise berücksichtigt werden.

Der nächste misst die Beweise Sie suchen auf. Wie hoch ist die Wahrscheinlichkeit, den Beweis zu sehen, die Sie sehen, wenn Sie Ihre Frage wahr durch die Wahrscheinlichkeit des Sehens des Beweises geteilt sind Sie sehen, wenn Ihre Frage ist nicht wahr. Angenommen, Sie hören Ihre Einbrecher Alarm ausgelöst. Wie oft haben Sie den Alarm, wenn es angenommen hat, zu gehen (jemand öffnet sich ein Fenster, wenn der Alarm aktiviert ist) im Vergleich zu wenn es nicht angenommen zu gehen (der Wind den Alarm aus). Wenn Sie eine 95% Chance auf einem Einbrecher Einstellung vor dem Alarm und eine Chance von 1% etwas anderen Einstellung vor dem Alarm haben, dann haben Sie eine Wahrscheinlichkeit von 95,0.

Ihr allgemeiner Glaube ist nur die Wahrscheinlichkeit, * die vor Quoten. In diesem Fall ist es:

((0.95/0.01) * ((10**-4)/(1 - (10**-4))))
# => 0.0095009500950095

Ich weiß nicht, ob dies macht es nicht mehr klar, aber es neigt dazu, leichter zu sein, einen Code zu haben, die bei Mutmaßlichkeiten Spur von vor Widrigkeiten zum Trotz, einen anderen Code zu sehen hält, und ein weiteres Stück Code, diese Informationen zu kombinieren .

Ich habe es in Python implementiert. Es ist sehr einfach zu verstehen, weil alle Formeln für Bayes-Theorem in getrennten Funktionen sind:

#Bayes Theorem

def get_outcomes(sample_space, f_name='', e_name=''):
    outcomes = 0
    for e_k, e_v in sample_space.items():
        if f_name=='' or f_name==e_k:
            for se_k, se_v in e_v.items():
                if e_name!='' and se_k == e_name:
                    outcomes+=se_v
                elif e_name=='':
                    outcomes+=se_v
    return outcomes

def p(sample_space, f_name):
    return get_outcomes(sample_space, f_name) / get_outcomes(sample_space, '', '')

def p_inters(sample_space, f_name, e_name):
    return get_outcomes(sample_space, f_name, e_name) / get_outcomes(sample_space, '', '')

def p_conditional(sample_space, f_name, e_name):
    return p_inters(sample_space, f_name, e_name) / p(sample_space, f_name)

def bayes(sample_space, f, given_e):
    sum = 0;
    for e_k, e_v in sample_space.items():
        sum+=p(sample_space, e_k) * p_conditional(sample_space, e_k, given_e)
    return p(sample_space, f) * p_conditional(sample_space, f, given_e) / sum

sample_space = {'UK':{'Boy':10, 'Girl':20},
                'FR':{'Boy':10, 'Girl':10},
                'CA':{'Boy':10, 'Girl':30}}

print('Probability of being from FR:', p(sample_space, 'FR'))
print('Probability to be French Boy:', p_inters(sample_space, 'FR', 'Boy'))
print('Probability of being a Boy given a person is from FR:', p_conditional(sample_space, 'FR', 'Boy'))
print('Probability to be from France given person is Boy:', bayes(sample_space, 'FR', 'Boy'))

sample_space = {'Grow' :{'Up':160, 'Down':40},
                'Slows':{'Up':30, 'Down':70}}

print('Probability economy is growing when stock is Up:', bayes(sample_space, 'Grow', 'Up'))

Pr (A | B): Bedingte Wahrscheinlichkeit von A: das heißt Wahrscheinlichkeit von A, da alles, was wir wissen, ist, B

Pr (A): Vor Wahrscheinlichkeit von A

Pr ist die Wahrscheinlichkeit, Pr (A | B). Ist die bedingte Wahrscheinlichkeit

Überprüfen Sie Wikipedia für Details.

das Rohr (|) bedeutet "gegeben". Die Wahrscheinlichkeit eines gegebenen B ist gleich die Wahrscheinlichkeit von B gegeben A x Pr (A) / Pr (B)

Auf der Grundlage Ihrer Frage kann ich dringend empfehlen, dass Sie brauchen zunächst einige Bachelor-Buch über Wahrscheinlichkeitstheorie zu lesen. Ohne diese werden Sie nicht richtig mit Ihrer Aufgabe auf Bayes-Klassifikator vorzurücken.

Ich würde Ihnen empfehlen dieses Buch http://www.athenasc.com/probbook.html oder Blick auf MIT Opencourseware .

Das Rohr wird verwendet bedingte Wahrscheinlichkeit darzustellen. Pr (A | B) = Wahrscheinlichkeit von A gegeben B

Beispiel: Angenommen, Sie sich nicht wohl fühlen und Sie im Web surfen, für die Symptome. Und das Internet sagt Ihnen, dass, wenn Sie diese Symptome haben, dann Sie XYZ Krankheit haben.

In diesem Fall: Pr (A | B) ist das, was Sie versuchen, um herauszufinden, welche ist: Die Wahrscheinlichkeit, dass Sie haben XYZ da Sie bestimmte Symptome haben.

Pr (A) ist die Wahrscheinlichkeit, die Krankheit zu haben XYZ

Pr (B) ist die Wahrscheinlichkeit, diese Symptome von

Pr (B | A) ist das, was Sie aus dem Internet herausfinden, das ist: Die Wahrscheinlichkeit, dass die Symptome mit Vorausgesetzt, dass Sie die Krankheit haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top