Inférence du réseau bayésien en utilisant pymc (confusion du débutant)


12

Je suis actuellement en train de suivre le cours PGM de Daphne Koller sur Coursera. En cela, nous modélisons généralement un réseau bayésien comme un graphe orienté de cause à effet des variables qui font partie des données observées. Mais sur les tutoriels et les exemples PyMC, je vois généralement qu'il n'est pas tout à fait modélisé de la même manière que le PGM ou du moins je suis confus. Dans PyMC, les parents de toute variable du monde réel observée sont souvent les paramètres de la distribution que vous utilisez pour modéliser la variable.

Maintenant, ma question est vraiment pratique. Supposons que j'ai 3 variables pour lesquelles des données sont observées (A, B, C) (supposons qu'elles sont toutes des variables continues juste pour le plaisir). D'après certaines connaissances du domaine, on peut dire que A et B provoquent C. Nous avons donc un BN ici - A, B sont les parents et C sont les enfants. maintenant de l'équation BN P (A, B, C) = P (C | A, B) * P (A) * P (B)

Je peux dire que A et B sont des distributions normales avec quelques mu et sigma, mais comment modéliser P (C | A, B)? L'idée générale que je veux apprendre est de savoir comment apprendre ce BN à l'aide de PyMC afin de pouvoir interroger le BN. Ou dois-je augmenter le BN avec les paramètres du modèle d'une manière ou d'une autre.

Ce problème peut-il être résolu en utilisant pymc? ou ai-je des erreurs fondamentales?

Toute aide serait appréciée!

Réponses:


6

Jetez un œil à un article dans Healthy Algorithm: http://healthyalgorithms.com/2011/11/23/causal-modeling-in-python-bayesian-networks-in-pymc/

également dans le totorial de PyMC: http://pymc-devs.github.io/pymc/tutorial.html

Vous pourriez peut-être essayer le clip de code suivant (en supposant que vous avez importé pymc en tant que mc):

A = mc.Normal('A', mu_A, tau_A)
B = mc.Normal('B', mu_B, tau_B)
p_C = mc.Lambda('p_C', lambda A=A, B=B: <<dependency spec goes here>>, doc='Pr[C|AB]')
C = mc.Bernoulli('C', p_C)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.