Bayesianische Netzinferenz mit Pymc (Anfänger-Verwirrung)


12

Ich nehme gerade am PGM-Kurs von Daphne Koller auf Coursera teil. Dabei modellieren wir im Allgemeinen ein Bayes'sches Netzwerk als Ursache-Wirkungs-Diagramm der Variablen, die Teil der beobachteten Daten sind. Aber bei PyMC-Tutorials und Beispielen sehe ich im Allgemeinen, dass es nicht ganz so modelliert ist wie das PGM oder zumindest ich bin verwirrt. In PyMC sind die Eltern jeder beobachteten Variablen der realen Welt häufig die Parameter der Verteilung, die Sie zum Modellieren der Variablen verwenden.

Jetzt ist meine Frage wirklich eine praktische. Angenommen, ich habe 3 Variablen, für die Daten beobachtet werden (A, B, C). Aus einigen Domänenkenntnissen kann man sagen, dass A und B C verursachen. Also haben wir hier eine BN - A, B sind die Eltern und C sind die Kinder. jetzt aus der BN-Gleichung P (A, B, C) = P (C | A, B) * P (A) * P (B)

Ich kann sagen, A und B sind einige Normalverteilungen mit etwas mu und Sigma, aber wie modelliere ich P (C | A, B)? Die allgemeine Idee, die ich lernen möchte, ist, wie ich dieses BN mit PyMC lerne, damit ich das BN abfragen kann. Oder muss ich die BN in irgendeiner Weise mit Parametern des Modells ergänzen.

Ist dieses Problem mit pymc lösbar? oder habe ich ein paar grundlagen falsch?

Jede Hilfe wäre dankbar!

Antworten:


6

Schauen Sie sich einen Beitrag in Healthy Algorithm an: http://healthyalgorithms.com/2011/11/23/causal-modeling-in-python-bayesian-networks-in-pymc/

auch in PyMCs totorial: http://pymc-devs.github.io/pymc/tutorial.html

Vielleicht würden Sie den folgenden Codeclip ausprobieren (vorausgesetzt, Sie haben pymc als mc importiert):

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)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.