Releases: pymc-labs/pymc-marketing
Releases · pymc-labs/pymc-marketing
0.10.0
What's Changed
New Features 🎉
- #1063 Pareto_nbd distribution enhancements by @Ishaanjolly in #1067
- #990 - Plot FourierBase along date rather than index by @Ishaanjolly in #1068
- Add CLV Cumulative Transaction Utlity by @ColtAllen in #1076
Bugfixes 🐛
michaelis_menten
transformation aspt.TensorVariable
by @PabloRoque in #1054
Documentation 📖
- comment save notebook in mmm example by @juanitorduz in #1053
- #1020 Correction of doctring for plot.py for
sample_kwargs
by @Ishaanjolly in #1060 - remove spend scaling step from budget optimizer by @juanitorduz in #1070
- added plotting options to plot_posterior_predictive by @jsnyde0 in #1072
- Docs update: make sure the right title shows up on Google by @ulfaslak in #1074
- small fixes mm roas notebook by @juanitorduz in #1083
- New notebook: causal inference with MMM's by @drbenvincent in #1032
- Polishing the new new causal ladder docs page by @drbenvincent in #1084
- Fix malformed equation in MMM docstring by @wd60622 in #1085
- MMM Case Study from PyData Global by @juanitorduz in #1044
Maintenance 🔧
- #1035 Distribution new customer enhancements by @Ishaanjolly in #1061
- Deprecate several
pymc_marketing.mmm.utils
functions by @PabloRoque in #1078 - Automatic labeling of untouched issues by @wd60622 in #1086
New Contributors
Full Changelog: 0.9.0...0.10.0
0.9.0
What's Changed
New Features 🎉
- Add user customization to
plot_curve
methods by @wd60622 in #1018 - Add
BetaGeoBetaBinomModel
by @ColtAllen in #1031 - MLFlow auto logging by @wd60622 #921
Documentation 📖
- Enhance MMM intro material by @juanitorduz in #1017
- Improve landing page by @juanitorduz in #1023
- simplify dag from mmm notebook by @juanitorduz in #1046
Maintenance 🔧
- lower bound xarray by @juanitorduz in #1025
- Mute
Sampling: []
stdout when callingget_channel_contributions_forward_pass_grid
by @PabloRoque in #1043
Full Changelog: 0.8.0...0.9.0
0.8.0
What's Changed
New Features 🎉
Prior
class to represent distributions by @wd60622 in #759- Pull out seasonality as
YearlyFourier
andMonthlyFourier
by @wd60622 in #802 - Separate Weibull adstock into CDF & PDF by @wd60622 in #810
- PoC: Use Pydantic as data validator by @juanitorduz in #809
- Create inverse_scaled_logistic_saturation and the corresponding class by @arthurmello in #827
- use labs theme as external by @OriolAbril in #830
- Skip coords with scalar value by @GiannisApost in #868
- Allow plot MMM components in the original scale by @juanitorduz in #870
- Add root saturation function (issue #702) by @iraur in #858
Bugfixes 🐛
- Save & load support for time varying parameters by @wd60622 in #815
json.loads
with python types bug by @wd60622 in #881- Save off media transformations by @wd60622 in #882
Documentation 📖
- add intercept and target variable to MMM component example by @wd60622 in #850
- Various MMM small documentation fixes by @juanitorduz in #854
- Update UML diagrams by @drbenvincent in #856
- Fix model_builder docstrings by @GiannisApost in #861
- add GH discussions link to README by @cluhmann in #866
- Fix Visual for hill_saturation function (Issue #851 ) by @PatrickRobotham in #857
- Inference changed to dataset by @Ishaanjolly in #873
- Fix default
ConvMode
in docstring by @ferrine in #864 - Update deployment docs by @wd60622 in #887
Maintenance 🔧
- Make PyMC 5.13.0 the minimum version by @wd60622 in #816
- Date Validation and MMM Model Hamonization (Pydantic) by @juanitorduz in #824
- Future-proof
prior_linearized
method call by @shuvayan in #806 - Specify 0.9.0 as deprecation version for recent MMM changes by @wd60622 in #849
- Fixing ruff commands in Makefile #825 by @MuradKhalil in #859
- Check for missing attrs after
sample_prior_predictive
andfit
by @wd60622 in #867
New Contributors
- @shuvayan made their first contribution in #806
- @arthurmello made their first contribution in #827
- @MuradKhalil made their first contribution in #859
- @GiannisApost made their first contribution in #861
- @PatrickRobotham made their first contribution in #857
- @Ishaanjolly made their first contribution in #873
- @iraur made their first contribution in #858
Full Changelog: 0.7.0...0.8.0
0.7.0
What's Changed
This release comes with great new features and improvements! Among many things, we have:
- Internal MMM refactor to make it customizable!
- We allow custom adstock and saturation functions.
- MMM time-varying media-baseline component available!
- Hierarchical distributions.
- Streamlit explainer app! See https://pymc-marketing-app.streamlit.app/
- CLV API standardization
- RFM segmentation
- Documentation improvements and new examples!
Major Changes 🛠
- Update
BetaGeoModel
API by @ColtAllen in #709 - User-defined media transformations and custom ordering by @cetagostini in #632
- CLV Plotting API by @ColtAllen in #728
GammaGammaModel
Docstrings and API Standardization by @ColtAllen in #758
New Features 🎉
- v0 Streamlit MMM Explainer App by @louismagowan in #614
- Add
BetaGeoBetaBinom
Distribution Block by @ColtAllen in #431 - RFM Segmentation by @ColtAllen in #680
- Media transformation sampling & plotting methods by @wd60622 in #734
- Hierarchical Model Configuration by @wd60622 in #743
- Allowing Hierarchical Non Centered Parametrization by @cetagostini in #747
- Creating Time Base component for Media Contribution by @cetagostini in #752
Bugfixes 🐛
- Fix related to column renaming after aggregating test frequency by @IvanUgrin in #698
model.fit
doesn't remove prior samples by @wd60622 in #741- Deepcopy of posterior to allow second
fit
call by @wd60622 in #790 - Add prior predictive example notebook by @juanitorduz in #787
Documentation 📖
- Correct BetaGeo docstring example by @wd60622 in #693
- Fix some ParetoNBDModel docstring typos by @Mews in #731
- Minor improvements [MMM] by @juanitorduz in #735
- MMM Component Notebook by @wd60622 in #748
- start addressing sphinx warnings and rendering issues by @OriolAbril in #750
- CLV Modeling Domains and Docstrings by @ColtAllen in #785
- Fix TVP Notebook by @juanitorduz in #793
- docs: Update model_builder.py to resolve warning in documentation build by @c0d33ngr in #797
- Time Varying Media Contribution Notebook by @cetagostini in #778
Maintenance 🔧
- pass kwargs to minimizer by @juanitorduz in #737
- improve tests mmm utils by @juanitorduz in #738
- fix np typing by @juanitorduz in #763
- remove noqa from plots by @juanitorduz in #761
- Run Ruff Notebooks by @juanitorduz in #773
- Run example notebooks CI by @juanitorduz in #791
New Contributors
- @louismagowan made their first contribution in #614
- @IvanUgrin made their first contribution in #698
- @Mews made their first contribution in #731
- @c0d33ngr made their first contribution in #797
Full Changelog: 0.6.0...0.7.0
0.6.0
What's Changed
New Features 🎉
- Time-varying intercept by @ulfaslak in #628
- New Pareto/NBD Example Notebook by @ColtAllen in #646
- MMM Example Notebook Improvements (waterfall & error plots) by @juanitorduz in #664
- Plot Waterfall Components Decomposition by @cetagostini-wise in #631
Bugfixes 🐛
- Pass conv mode to adstock functions by @juanitorduz in #665
- Fix compressed images in docs. by @juanitorduz in #667
- Fix
ylabel
BG/NBD Notebook by @juanitorduz in #654 - TV intercept notebook: fix title level by @juanitorduz in #663
- Add sample_kwargs BG/NBD Notebook by @juanitorduz in #676
Documentation 📖
- Update resources.md by @coreyabs-db in #652
- Improve tanh saturation parameter class documentation by @wd60622 in #657
- Add quickstart to readme by @juanitorduz in #653
- Add contributors to README by @juanitorduz in #659
- Update README.md by @nialloulton in #660
New Contributors
- @coreyabs-db made their first contribution in #652
Full Changelog: 0.5.0...0.6.0
0.5.0
What's Changed
New Features 🎉
- Add
rfm_train_test_split
Utility Function by @ColtAllen in #572
Bugfixes 🐛
- Fix
clv
plotting bugs and edits to Quickstart by @ColtAllen in #601
Documentation 📖
- Add lift tests check to comparison table by @juanitorduz in #611
- Add more content to the Gamma-Gamma Notebook by @juanitorduz in #573
- Add more content to the BG/NBD Notebook by @juanitorduz in #571
- Improve MMM Docs by @juanitorduz in #612
- MMM notebook small fixes by @juanitorduz in #626
Maintenance 🔧
- Drop Python 3.9 support by @juanitorduz in #615
- Add support for Python 3.12 by @juanitorduz in #618
0.4.2
What's Changed
Bugfixes 🐛
- Fix bug in predictive methods of ParetoNBD model with covariates by @ricardoV94 in #589
Full Changelog: 0.4.1...0.4.2
0.4.1
What's Changed
New Features 🎉
- Implement ParetoNBD with covariates by @ricardoV94 in #545
- Compute channel contributions from new spends by @wd60622 in #456
- Add Docker Image by @juanitorduz in #540
Bugfixes 🐛
- Fix repr error when CLVModel is not yet built by @ricardoV94 in #563
Documentation 📖
- Update resources page by @juanitorduz in #539
- Add to documentation feature comparison by @wd60622 in #550
- Make BetaGeoModel docstring example work by @wd60622 in #558
- Add nbqa-ruff for doc notebooks by @juanitorduz in #561
- Add other nuts samplers example notebook by @juanitorduz in #579
Maintenance 🔧
- Use union of default and user provided configs in ModelBuilder by @ricardoV94 in #565
- Remove
scale_preserving_logistic_saturation
function by @ulfaslak in #585
New Contributors
- @AlexAndorra made their first contribution in #556
Full Changelog: 0.4.0...0.4.1
0.4.0
What's Changed
New Features 🎉
- Handle new data correctly and extend the functionality of MMM posterior predictive methods by @wd60622 in #482
- Add baselined saturation by @ferrine in #498
- Add scale preserving saturation function by @ulfaslak in #503
- Add Weibull CDF and PDF Adstock Transformations by @abdalazizrashid in #499
Bugfixes 🐛
- Swap Before and After convolution modes by @abdalazizrashid in #501
- Support use of
ParetoNBDModel
incustomer_lifetime_value
by @ColtAllen in #512
Documentation 📖
New Contributors
Full Changelog: 0.3.3...0.4.0
0.3.3
What's Changed
New Features 🎉
- Implement different convolution modes by @abdalazizrashid in #454
- Rename
clv_summary
torfm_summary
and extend functionality by @ColtAllen in #479
Documentation 📖
- Fix issues in index example by @ricardoV94 in #470
- Adstock, saturation, convolution docstring visuals by @wd60622 in #461
- Don't show full path of items in the docs by @OriolAbril in #483
Maintenance 🔧
- Optimisation in
customer_lifetime_value
when discount_rate is zero by @vincent-grosbois in #468
New Contributors
- @abdalazizrashid made their first contribution in #454
- @vincent-grosbois made their first contribution in #468
Full Changelog: 0.3.2...0.3.3