पीआईएससी (बेगनर का भ्रम) का उपयोग करते हुए बायेसियन नेटवर्क का अनुमान


13

मैं वर्तमान में कोर्टेरा पर डाफने कोल्लर द्वारा पीजीएम पाठ्यक्रम ले रहा हूं। उस में, हम आम तौर पर एक बायेसियन नेटवर्क को वैरिएबल के एक कारण और प्रभाव के रूप में निर्देशित करते हैं, जो कि देखे गए डेटा का हिस्सा है। लेकिन PyMC ट्यूटोरियल और उदाहरणों पर मैं आमतौर पर देखता हूं कि यह उसी तरह से मॉडलिंग नहीं करता है जैसे पीजीएम या कम से कम मैं भ्रमित हूं। PyMC में किसी भी देखे गए वास्तविक विश्व चर के माता-पिता अक्सर वितरण के पैरामीटर हैं जो आप चर को मॉडल करने के लिए उपयोग करते हैं।

अब मेरा प्रश्न वास्तव में एक व्यावहारिक है। मान लीजिए कि मेरे पास 3 चर हैं जिनके लिए डेटा मनाया जाता है (ए, बी, सी) (मान लेते हैं कि वे केवल इसके लिए सभी निरंतर चर हैं)। कुछ डोमेन ज्ञान से, कोई कह सकता है कि ए और बी सी का कारण है। इसलिए हमारे यहां बीएन है - ए, बी माता-पिता हैं और सी बच्चे हैं। अब बीएन समीकरण P (A, B, C) = P (C | A, B) * P (A) * P (B) से

मैं कह सकता हूं कि ए और बी कुछ म्यू और सिग्मा के साथ कुछ सामान्य वितरण हैं, लेकिन मैं पी (सी | ए, बी) कैसे मॉडल करूं? सामान्य विचार जो मैं सीखना चाहता हूं, वह यह है कि मैं इस BN को PyMC का उपयोग करके कैसे सीखता हूं ताकि मैं BN को क्वेरी कर सकूं। या क्या मुझे कुछ फैशन में मॉडल के मापदंडों के साथ बीएन को बढ़ाना है।

क्या यह समस्या pymc के उपयोग से हल करने योग्य है? या मुझे कुछ बुनियादी गलतियां मिली हैं?

किसी भी सहायता की सराहना की जाएगी!

जवाबों:


7

स्वस्थ एल्गोरिथ्म में एक पोस्ट पर एक नज़र डालें: http://healthyalgorithms.com/2011/11/23/causal-modeling-in-python-bayesian-networks-in-pymc/

PyMC के कुलदेवता में भी: http://pymc-devs.github.io/pymc/tutorial.html

हो सकता है कि आप निम्नलिखित कोड क्लिप की कोशिश करेंगे (यह मानकर कि आपने pcc को 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)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.