Inferenza della rete bayesiana usando pymc (Confusione per principianti)


12

Attualmente sto seguendo il corso PGM di Daphne Koller su Coursera. In questo, generalmente modelliamo una rete bayesiana come un grafico diretto causa ed effetto delle variabili che fanno parte dei dati osservati. Ma su tutorial ed esempi PyMC generalmente vedo che non è del tutto modellato allo stesso modo del PGM o almeno sono confuso. In PyMC i genitori di qualsiasi variabile osservata nel mondo reale sono spesso i parametri della distribuzione che usi per modellare la variabile.

Ora la mia domanda è davvero pratica. Supponiamo che io abbia 3 variabili per le quali vengono osservati i dati (A, B, C) (supponiamo che siano tutte variabili continue solo per il gusto di farlo). Da una certa conoscenza del dominio, si può dire che A e B causano C. Quindi qui abbiamo un BN - A, B sono i genitori e C i bambini. ora dall'equazione BN P (A, B, C) = P (C | A, B) * P (A) * P (B)

Posso dire che A e B sono alcune distribuzioni normali con alcuni mu e sigma, ma come modellare P (C | A, B)? L'idea generale che voglio imparare è come apprendo questo BN usando PyMC in modo da poter interrogare il BN. O devo aumentare il BN con i parametri del modello in qualche modo.

Questo problema è risolvibile con pymc? o ho sbagliato alcuni fondamenti?

Qualsiasi aiuto sarebbe apprezzato!

Risposte:


6

Dai un'occhiata a un post in Healthy Algorithm: http://healthyalgorithms.com/2011/11/23/causal-modeling-in-python-bayesian-networks-in-pymc/

anche nel totorial di PyMC: http://pymc-devs.github.io/pymc/tutorial.html

Forse dovresti provare la seguente clip di codice (supponendo che tu abbia importato pymc come 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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.