Question

Je travaille sur une mise en œuvre d'un classificateur Naive Bayes. Programmation Intelligence Collective présente ce sujet en décrivant le théorème de Bayes comme:

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

En plus d'un exemple spécifique pertinent pour la classification des documents:

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

J'espérais que quelqu'un pourrait me expliquer la notation utilisée ici, qu'est-ce que signifie Pr(A | B) et Pr(A)? Il ressemble à une sorte de fonction mais qu'est-ce que le tuyau ( « | ») signifie, etc?

Était-ce utile?

La solution

  • Pr (A | B) = probabilité d'un événement étant donné que B est déjà arrivé
  • Pr (A) = probabilité d'un événement

Mais ce qui précède est en ce qui concerne le calcul de probabilité conditionnelle. Ce que vous voulez est un classificateur, qui utilise ce principe pour décider si quelque chose appartient à une catégorie en fonction de la probabilité précédente.

Voir http://en.wikipedia.org/wiki/Naive_Bayes_classifier pour un exemple complet

Autres conseils

Je pense qu'ils ont pensé à vous sur les bases.

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

lit comme suit: la probabilité d'une B donnée est la même que la probabilité de B donné une fois la probabilité de A divisé par la probabilité de B. Il est généralement utilisé lorsque vous pouvez mesurer la probabilité de B et vous essayez de comprendre si B nous conduit à croire en A. Ou, en d'autres termes, nous nous soucions vraiment A, mais nous pouvons mesurer B plus directement, donc nous allons commencer par ce que nous pouvons mesurer.

Permettez-moi de vous donner une dérivation qui rend cela plus facile pour l'écriture de code. Il vient de Judea Pearl . Je me suis battu avec cela un peu, mais après avoir réalisé que Perle nous aide à transformer la théorie en code, la lumière allumé pour moi.

Avant Odds:

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

rapport de vraisemblance:

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

Les chances Postérieur:

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

En anglais, nous disons que les chances de quelque chose que vous intéresse (H pour hypothèse) sont simplement le nombre de fois que vous trouvez quelque chose pour être vrai, divisé par le temps que vous trouvez qu'il ne soit pas vrai. Donc, dire une maison est volé tous les jours de 10 000. Cela signifie que vous avez un 1/10 000 chance d'être volé, sans aucune autre preuve à l'étude.

La prochaine mesure la preuve que vous regardez. Quelle est la probabilité de voir la preuve que vous voyez lorsque votre question est vraie divisée par la probabilité de voir la preuve que vous voyez lorsque votre question n'est pas vrai. Dites que vous entendez votre système d'alarme se déclenche. À quelle fréquence vous obtenez cette alarme quand il est censé partir (quelqu'un ouvre une fenêtre lorsque l'alarme est activée) par rapport à quand il est pas censé partir (le vent régler l'alarme). Si vous avez 95% de chances d'un cambrioleur déclencher l'alarme et une chance de quelque chose d'autre réglage l'alarme 1%, alors vous avez une probabilité de 95,0.

Votre croyance générale est que la probabilité * les odds avant. Dans ce cas, il est:

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

Je ne sais pas si cela rend plus clair, mais il a tendance à être plus facile d'avoir un code qui garde la trace de chances a priori, tout autre code de regarder vraisemblances, et un autre morceau de code pour combiner ces informations .

Je l'ai mis en œuvre en Python. Il est très facile à comprendre parce que toutes les formules pour le théorème de Bayes sont en fonctions distinctes:

#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): probabilité conditionnelle de A: à savoir la probabilité de A, étant donné que nous savons tous est B

Pr (A): probabilité préalable d'un

Pr est la probabilité, Pr (A | B) est la probabilité conditionnelle

.

Vérifiez wikipedia pour plus de détails.

le tube (|) signifie "donné". La probabilité d'une donnée B est égale à la probabilité de B donnée A x Pr (A) / Pr (B)

Sur la base de votre question, je peux conseille vivement que vous avez besoin de lire un livre de premier cycle sur la théorie des probabilités en premier. Sans cela, vous ne serez pas avancer correctement avec votre tâche sur Naive Bayes Classifier.

Je vous recommande ce livre http://www.athenasc.com/probbook.html ou regarder MIT OpenCourseWare .

Le tube est utilisé pour représenter la probabilité conditionnelle. Pr (A | B) = probabilité de B

donnée

Exemple: Disons que vous ne vous sentez pas bien et que vous naviguez sur le Web pour les symptômes. Et l'Internet vous dit que si vous avez ces symptômes, vous avez une maladie XYZ.

Dans ce cas: Pr (A | B) est ce que vous essayez de savoir, ce qui est: La probabilité de vous avoir XYZ étant donné que vous avez certains symptômes.

Pr (A) est la probabilité d'avoir la maladie XYZ

Pr (B) est la probabilité d'avoir ces symptômes

Pr (B | A) est ce que vous découvrez de l'Internet, qui est: La probabilité d'avoir les symptômes DONNES que vous avez la maladie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top