Je travaille sur une mise en œuvre d'un classificateur naïf Bayes. Intelligence collective de programmation introduit ce sujet en décrivant le théorème de Bayes comme: Ainsi qu'un exemple spécifique pertinent pour la classification des documents: P> Pr(Category | Document) = Pr(Document | Category) x Pr(Category) / Pr(Document)
8 Réponses :
Mais ce qui précède concerne le calcul de la probabilité conditionnelle. Ce que vous voulez, c'est un classificateur, qui utilise ce principe pour décider si quelque chose appartient à une catégorie basée sur la probabilité précédente. p>
voir http://fr.wikipedia.org/wiki/noive_bayes_classifificateur pour un exemple complet p>
Merci, a du sens. Partout, cela est décrit une certaine connaissance mathématique est supposée, une certaine connaissance que je n'ai pas :-).
PR est la probabilité, PR (A | B) est la probabilité conditionnelle. P>
PR (A | B): Probabilité conditionnelle d'A: I.e. Probabilité d'A, étant donné que tout ce que nous savons est B P>
pr (a): probabilité préalable d'un p>
Le tuyau (|) signifie "donné". La probabilité d'un B donné est égale à la probabilité de B donnée A X PR (A) / PR (B) P>
Basé sur votre question, je peux fermement vous informer que vous devez lire d'abord un livre de premier cycle sur la théorie des probabilités. Sans cela, vous ne passerez pas correctement avec votre tâche sur le classificateur NAIVE BAYES. P>
Je vous recommanderais ce livre http://www.athenasc.com/probbook.htmlle_ A> ou regarde MIT OpenCoursware . P>
Je pense qu'ils vous ont couvert sur les bases. se lit comme suit: la probabilité d'un B donné est identique à la probabilité de B donné une fois la probabilité d'une probabilité de probabilité de B. Il est généralement utilisé lorsque vous pouvez mesurer la probabilité de B et que vous essayez de comprendre si B nous conduit à croire en A. ou, en d'autres termes, nous nous soucions vraiment d'un, mais nous pouvons mesurer B plus directement, alors commençons par ce que nous pouvons mesurer. P> Permettez-moi de vous donner une dérivation qui facilite la rédaction de code. Il vient de Judée Pearl . J'ai eu du mal avec ça un peu, mais après avoir réalisé comment Pearl nous aide à éteindre la théorie en code, la lumière allumée pour moi. P> Cotes antérieures: p> ((0.95/0.01) * ((10**-4)/(1 - (10**-4))))
# => 0.0095009500950095
Je l'ai mis en œuvre à Python. Il est très facile de comprendre car toutes les formules pour les théorèmes de Bayes sont dans des fonctions séparées:
#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'))
Le tuyau est utilisé pour représenter la probabilité conditionnelle. Pr (a | b) = probabilité d'un B p>
exemple: Disons que vous ne vous sentez pas bien et que vous surfez sur le Web pour les symptômes. Et Internet vous dit que si vous avez ces symptômes, vous avez une maladie XYZ. p>
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. P>
PR (a) est la probabilité d'avoir la maladie xyz p>
PR (b) est la probabilité d'avoir ces symptômes p>
PR (B | A) est ce que vous découvrez d'Internet, ce qui est: La probabilité d'avoir les symptômes étant donné que vous avez la maladie. p>
Certainement un Mathoverflow.net question.
@Ofri Raviv: J'en doute. Mathoverflow est destiné aux mathématiciens professionnels, cette question serait immédiatement fermée.
S'il vous plaît utiliser Mathoverflow.net. Mon seul préoccupation que cette question sera fermée là aussi simple.
@ Jörg W Mittag: Vous avez probablement raison. C'est plus d'une question un peu RTFM ...
Cette question serait complètement inappropriée i> pour Mathoverflow.net. s'il vous plaît i> Arrêtez de diriger les gens là-bas jusqu'à ce que vous ayez au moins consulté le site et comprenez quel type de questions ils y répondent.