-
Notifications
You must be signed in to change notification settings - Fork 228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement ParetoNBD with covariates #545
Conversation
I think an updated UML diagram would be a helpful addition to CONTRIBUTING.MD to better understand all these new class inheritances: Here are some instructions on how to create one: |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #545 +/- ##
===========================================
- Coverage 91.56% 35.61% -55.96%
===========================================
Files 21 21
Lines 2052 2137 +85
===========================================
- Hits 1879 761 -1118
- Misses 173 1376 +1203 ☔ View full report in Codecov by Sentry. |
cb1d436
to
216257f
Compare
Code is certainly cleaner than the IF statement jungle of the PR I posted haha. Best way I can contribute is to create a child branch and work in parallel in the dev notebook for user-oriented feedback. |
It's always easier to refactor than write the first pass. The notebook would help a lot! I'll be testing the covariate model today, and fix stuff I've certainly broken |
bc5a7f3
to
6ba6ee1
Compare
5e49dac
to
839aaf0
Compare
@ColtAllen finally pushed my last changes. I broke the pre-existing methods API very much, but we can:
I'm in favor of 2. Finally, the slow |
cfd6d75
to
133fd36
Compare
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Yes, let's do option 2.
Yes - the true parameters you're using are for a model fit without covariates. When I fit a covariate model in the dev notebook of my previous PR, all parameter values changed. I also noticed the covariates were synthesized and tacked onto an existing dataset. If we're to test via parameter recovery, we'll need to generate a full dataset from the parameters used for testing. |
No, I'm generating new observations (recency and frequency) in that test as well |
48770dd
to
024e76f
Compare
Buy why is only a single prior predictive sample being taken? |
One draw is enough, it contains an observation for each synthetic customer |
I see. The new frequency column name is misspelled though, so it's testing on the original column rather than what was generated for the test. |
Is the user API still a work in progress? All predictive methods require arguments to be converted into dataframe columns beforehand, which seems rather cumbersome. |
4de7aba
to
2ae0b94
Compare
db45c51
to
652b0c9
Compare
652b0c9
to
d64a4df
Compare
Co-authored-by: Colt Allen <[email protected]>
d64a4df
to
db06d52
Compare
Description
Related Issue
ParetoNBDModel
#463Checklist
Modules affected
Type of change
📚 Documentation preview 📚: https://pymc-marketing--545.org.readthedocs.build/en/545/