Markov Chain Monte Carlo और मॉडल फिटिंग

Python में Bayesian डेटा विश्लेषण

Michal Oleszak

Machine Learning Engineer

प्रोडक्शन में Bayesian डेटा विश्लेषण

  • Grid approximation: कई पैरामीटर होने पर असुविधाजनक
  • ज्ञात posterior से सैंपलिंग: conjugate priors की जरूरत
  • Markov Chain Monte Carlo (MCMC): अज्ञात posterior से सैंपलिंग!
Python में Bayesian डेटा विश्लेषण

Monte Carlo

  • रैंडम नंबर जनरेट कर किसी मात्रा का अनुमान
  • सूत्र से, $\pi r^2 \simeq 78.5$

त्रिज्या 5 वाला एक वृत्त.

Python में Bayesian डेटा विश्लेषण

Monte Carlo

  • रैंडम नंबर जनरेट कर किसी मात्रा का अनुमान
  • सूत्र से, $\pi r^2 \simeq 78.5$
  • वृत्त के चारों ओर 10x10 का वर्ग खींचें.

त्रिज्या 5 वाला वृत्त, जिस पर एक वर्ग बना है.

Python में Bayesian डेटा विश्लेषण

Monte Carlo

  • रैंडम नंबर जनरेट कर किसी मात्रा का अनुमान
  • सूत्र से, $\pi r^2 \simeq 78.5$
  • वृत्त के चारों ओर 10x10 का वर्ग खींचें.
  • वर्ग में 25 रैंडम बिंदु सैंपल करें.
  • कितने वृत्त के भीतर हैं? $19/25=76\%$
  • वृत्त का क्षेत्रफल अनुमान: 76% * 100 = 76

त्रिज्या 5 वाला वृत्त, उस पर बना वर्ग, और वर्ग में 25 रैंडम बिंदु.

Python में Bayesian डेटा विश्लेषण

Markov Chains

  • अवस्थाओं की एक श्रृंखला को मॉडल करता है, जिनके बीच दी गई प्रायिकताओं से संक्रमण होता है।
Python में Bayesian डेटा विश्लेषण

Markov Chains

  • अवस्थाओं की एक श्रृंखला को मॉडल करता है, जिनके बीच दी गई प्रायिकताओं से संक्रमण होता है.

भालू आगे क्या करेगा:

hunt eat sleep
hunt 0.1 0.8 0.1
eat 0.05 0.4 0.55
sleep 0.8 0.15 0.05
  • कई समय-अवधियों बाद, transition प्रायिकताएँ शुरुआती अवस्था से स्वतंत्र होकर समान हो जाती हैं।
Python में Bayesian डेटा विश्लेषण

Markov Chains

  • अवस्थाओं की एक श्रृंखला को मॉडल करता है, जिनके बीच दी गई प्रायिकताओं से संक्रमण होता है.

भालू आगे क्या करेगा:

hunt eat sleep
hunt 0.1 0.8 0.1
eat 0.05 0.4 0.55
sleep 0.8 0.15 0.05
  • कई समय-अवधियों बाद, transition प्रायिकताएँ शुरुआती अवस्था से स्वतंत्र होकर समान हो जाती हैं.

दूर भविष्य में भालू क्या करेगा:

hunt eat sleep
hunt 0.28 0.44 0.28
eat 0.28 0.44 0.28
sleep 0.28 0.44 0.28
Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर एक लाल बिंदु.

Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर दो बिंदु, एक लाल और एक काला.

Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर दो बिंदु, एक लाल और एक हरा.

Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर तीन बिंदु: एक लाल, एक हरा, एक काला.

Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर तीन बिंदु: दो लाल, एक हरा.

Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर चार बिंदु: दो लाल, दो हरे.

Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर सात बिंदु: दो लाल, पाँच हरे.

Python में Bayesian डेटा विश्लेषण

Markov Chain Monte Carlo

क्रमांकित अक्ष पर कई बिंदु: कुछ लाल, अधिकांश हरे.

Python में Bayesian डेटा विश्लेषण

समेकित विज्ञापन डेटा

print(ads_aggregated)
           date  clothes_banners_shown  sneakers_banners_shown  num_clicks
0    2019-01-01                     20                      18           2
1    2019-01-02                     24                      19           8
2    2019-01-03                     20                      20           5
..          ...                    ...                     ...         ...
148  2019-05-29                     24                      25           8
149  2019-05-30                     26                      27          11
150  2019-05-31                     26                      24           8

[151 rows x 4 columns]
Python में Bayesian डेटा विश्लेषण

pyMC3 के साथ Linear regression

formula = "num_clicks ~ clothes_banners_shown + sneakers_banners_shown"


with pm.Model() as model: pm.GLM.from_formula(formula, data=ads_aggregated)
# Print model specification print(model)
# Sample posterior draws trace = pm.sample(draws=1000, tune=500)

pymc3 की print फ़ंक्शन का आउटपुट, जो मॉडल पैरामीटर्स के priors सूचीबद्ध करता है.

Python में Bayesian डेटा विश्लेषण

अभ्यास करते हैं MCMC!

Python में Bayesian डेटा विश्लेषण

Preparing Video For Download...