Sonuçları yorumlama ve modelleri karşılaştırma

Python ile Bayesçi Veri Analizi

Michal Oleszak

Machine Learning Engineer

Modeli çalıştırma: tekrar

formula = "num_clicks ~ clothes_banners_shown + sneakers_banners_shown"

with pm.Model() as model_1:
    pm.GLM.from_formula(formula, data=ads_aggregated)
    trace_1 = pm.sample(draws=1000, tune=500)
Python ile Bayesçi Veri Analizi

Modeli çalıştırma: tekrar

formula = "num_clicks ~ clothes_banners_shown + sneakers_banners_shown"

with pm.Model() as model_1:
    pm.GLM.from_formula(formula, data=ads_aggregated)
    trace_1 = pm.sample(draws=1000, tune=500, chains=4)
  • Parametre sayısı: 4
  • Her parametre için çekiliş sayısı: 1000 $\times$ 4 = 4000
Python ile Bayesçi Veri Analizi

İz grafiği

pm.traceplot(trace_1)

İki sütun, dört satırdan oluşan sekiz grafikli bir ızgara. Sol sütunda dört yoğunluk grafiği, sağ sütunda her bir model parametresi için dört çizgi grafiği var.

Python ile Bayesçi Veri Analizi

İz grafiği: tek bir parametreye yakınlaştırma

 

Yan yana iki grafik: solda bir yoğunluk grafiği, sağda parametre çekilişlerinin çizgi grafiği.

Python ile Bayesçi Veri Analizi

Orman grafiği

pm.forestplot(trace_1)

Her model parametresi için çekiliş dağılımını yatay olarak gösteren bir grafik.

Python ile Bayesçi Veri Analizi

İz özeti

pm.summary(trace_1)
                         mean     sd  hdi_3%  hdi_97%  mcse_mean  mcse_sd  \
Intercept               1.307  0.886  -0.305    2.962      0.018    0.013   
clothes_banners_shown   0.103  0.031   0.043    0.160      0.001    0.000   
sneakers_banners_shown  0.104  0.032   0.045    0.163      0.001    0.001   
sd                      2.654  0.157   2.382    2.970      0.003    0.002   

                        ess_mean  ess_sd  ess_bulk  ess_tail  r_hat  
Intercept                 2346.0  2318.0    2351.0    2083.0    1.0  
clothes_banners_shown     2085.0  2085.0    2089.0    1868.0    1.0  
sneakers_banners_shown    2105.0  1953.0    2122.0    1869.0    1.0  
sd                        2615.0  2590.0    2646.0    1834.0    1.0
Python ile Bayesçi Veri Analizi

Başka bir modeli kurma

formula = "num_clicks ~ clothes_banners_shown + sneakers_banners_shown + weekend"

with pm.Model() as model_2:
    pm.GLM.from_formula(formula, data=ads_aggregated)
    trace_2 = pm.sample(draws=1000, tune=500)
Python ile Bayesçi Veri Analizi

Geniş Uygulanabilir Bilgi Kriteri (WAIC)

comparison = pm.compare({"trace_1": trace_1, "trace_2": trace_2}, 
                        ic="waic", scale="deviance")
print(comparison)
        rank     waic   p_waic    d_waic    weight       se      dse warning  \
trace_2    0   -362.8   5.1576         0  0.513792  9.37269        0    True   
trace_1    1 -362.926  4.13318  0.126236  0.486208  9.48352  1.50682    True   

        waic_scale  
trace_2        log  
trace_1        log
Python ile Bayesçi Veri Analizi

Karşılaştırma grafiği

pm.compareplot(comparison)

İki model için WAIC değerlerini görselleştiren bir grafik.

Python ile Bayesçi Veri Analizi

Modelleri karşılaştıralım!

Python ile Bayesçi Veri Analizi

Preparing Video For Download...