Introduction to PyMC3 models¶
This library was inspired by my own work creating a re-usable Hierarchical Logistic Regression model.
To learn more, you can read this section, watch a video from PyData NYC 2017, or check out the slides .
Quick intro to PyMC3¶
When building a model with PyMC3, you will usually follow the same four steps:
- Step 1: Set up Parameterize your model, choose priors, and insert training data
- Step 2: Inference infer your parameters using MCMC sampling (e.g. NUTS) or variational inference (e.g. ADVI)
- Step 3: Interpret Check your parameter distributions and model fit
- Step 4: Predict data Create posterior samples with your inferred parameters
For a longer discussion of these steps, see Getting Started.
Mapping between scikit-learn and PyMC3¶
This library builds a mapping between the steps above with the methods used by scikit-learn models.
scikit-learn | PyMC3 |
---|---|
Fit | Step 1: Set up, Step 2: Inference |
Predict | Step 4: Predict Data |
Score | Step 4: Predict data |
Save/Load | ?? |
?? | Step 3: Interpret |
The question marks represent things that don’t exist in the two libraries on their own.
Comparing scitkit-learn, PyMC3, and PyMC3 Models¶
Using the mapping above, this library creates easy to use PyMC3 models.
scikit-learn | PyMC3 | PyMC3 models | |
---|---|---|---|
Find model parameters | Easy | Medium | Easy |
Predict new data | Easy | Difficult | Easy |
Score a model | Easy | Difficult | Easy |
Save a trained model | Easy | Impossible? | Easy |
Load a trained model | Easy | Impossible? | Easy |
Interpret Parameterization | N/A | Easy | Easy |