Quanto costa un avocado?

Analisi dei dati bayesiana in Python

Michal Oleszak

Machine Learning Engineer

The Avocado, Inc.

Frutti di avocado.

Analisi dei dati bayesiana in Python

Caso di studio: stima dell'elasticità del prezzo

Obiettivo: stimare l'elasticità del prezzo degli avocado e ottimizzare il prezzo

(elasticità del prezzo = impatto della variazione di prezzo sul volume di vendita)

  1. Adatta un modello di regressione bayesiano.
  2. Ispeziona il modello per verificarne la correttezza.
  3. Prevedi il volume di vendita per prezzi diversi.
  4. Proponi il prezzo che massimizza il profitto e la relativa incertezza.
Analisi dei dati bayesiana in Python

Dati sugli avocado

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 Fonte dei dati: https://www.kaggle.com/neuromusic/avocado-prices
Analisi dei dati bayesiana in Python

Priors in 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)
Analisi dei dati bayesiana in Python

Priors in 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)
Analisi dei dati bayesiana in Python

Estrazione dei campioni dal trace

temp_draws = trace.get_values("temp")

print(temp_draws)
array([6.8705346, 6.7421152, 6.7393061, ..., 5.966574 , 6.1274128, 6.7149277])
Analisi dei dati bayesiana in Python

Cosa ti servirà

Adattamento del modello:

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

Visualizzazione:

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

 

Previsioni:

  • pm.fast_sample_posterior_predictive()

 

Inferenza:

  • az.hdi()
Analisi dei dati bayesiana in Python

Mettiamo in pratica ciò che hai imparato!

Analisi dei dati bayesiana in Python

Preparing Video For Download...