Vad kostar en avokado?

Bayesiansk dataanalys i Python

Michal Oleszak

Machine Learning Engineer

The Avocado, Inc.

Avokadobitar.

Bayesiansk dataanalys i Python

Fallstudie: uppskattning av priselasticitet

Mål: uppskatta priselasticitet för avokado och optimera priset

(priselasticitet = prisförändringens inverkan på försäljningsvolymen)

  1. Anpassa en bayesiansk regressionsmodell.
  2. Granska modellen för att verifiera att den är korrekt.
  3. Förutsäg försäljningsvolym för olika priser.
  4. Föreslå det vinstmaximerande priset och tillhörande osäkerhet.
Bayesiansk dataanalys i Python

Avokadodata

print(avocado)
           date  price      volume  type_organic
0    2015-01-04   0.95  313.242777             0
1    2015-01-11   1.01  290.635427             0
2    2015-01-18   1.03  290.434588             0
3    2015-01-25   1.04  284.703108             0
..          ...    ...         ...           ...
334  2018-03-04   1.52   16.344308             1
335  2018-03-11   1.52   16.642349             1
336  2018-03-18   1.54   16.758042             1
337  2018-03-25   1.55   15.599672             1
1 Datakälla: https://www.kaggle.com/neuromusic/avocado-prices
Bayesiansk dataanalys i Python

Priors i pymc3

formula = "num_bikes ~ temp + work_day + wind_speed"

with pm.Model() as model:

    pm.GLM.from_formula(formula, data=bikes)
    trace = pm.sample(draws=1000, tune=500)
Bayesiansk dataanalys i Python

Priors i pymc3

formula = "num_bikes ~ temp + work_day + wind_speed"

with pm.Model() as model:
    priors = {"wind_speed": pm.Normal.dist(mu=-5)}
    pm.GLM.from_formula(formula, data=bikes, priors=priors)
    trace = pm.sample(draws=1000, tune=500)
Bayesiansk dataanalys i Python

Hämta sampel från trace

temp_draws = trace.get_values("temp")

print(temp_draws)
array([6.8705346, 6.7421152, 6.7393061, ..., 5.966574 , 6.1274128, 6.7149277])
Bayesiansk dataanalys i Python

Vad du behöver

Modellanpassning:

  • pm.Model()
  • pm.GLM.from_formula()
  • pm.sample()
  • pm.Normal()

Visualisering:

  • pm.forestplot()
  • pm.traceplot()

 

Prediktioner:

  • pm.fast_sample_posterior_predictive()

 

Inferens:

  • az.hdi()
Bayesiansk dataanalys i Python

Nu kör vi en övning!

Bayesiansk dataanalys i Python

Preparing Video For Download...