Comments (9)
It's here.
from lifetimes.
Does anyone have a local copy of the notebook?
from lifetimes.
@ReaBx, no, you are mostly right, it is a confusing concept and I get confused sometimes as well. In lifetimes, the definition is:
customers['recency'] = (customers['max'] - customers['min'])
In words:
recency represents the age of the customer when they made their most recent purchases. This is equal to the duration between a customer’s first purchase and their latest purchase.
In the linked notebook, the author uses the definition:
recency: time of most recent purchase
That's too ambiguous of a definition. But ultimately the author uses lifetimes
utils to calculate it, so their summary statistics are the same.
I get further confused by the doc's explanation of the recency/frequency graph where they seem to be using the other definition ("Your coldest customers are those that are in the top-right corner: they bought a lot quickly, and we haven’t seen them in weeks.")
Fair - this graphic does cause a lot of confusion. In generating this graphic, we need to set a max time, which in this case is ~40 time periods. Another way to see this is "all customers first bought from me 40 weeks ago". Thus if a customer has a recency of 5, it means they bought at time 0 and 5 and never since. Thus they are likely dead (or "cold").
from lifetimes.
This has been taken down, does anyone have a copy of the notebook?
from lifetimes.
Just curious if anyone has tried this approach. We're actually talking about future steps and wonder if it's worth the investment in time to learn and build out this approach on our cluster.
from lifetimes.
Good stuff. I was trying to find pymc3 implementation without success. :)
from lifetimes.
Just skimming over this and I'm really confused about the different definitions of recency
. I asked in their github as well but maybe you have an idea on this here, too since this seems ambiguous in the lifetimes docs as well.
In the linked notebook, they define
- recency: time of most recent purchase
However, they use lifetimes.utils.summary_data_from_transaction_data() for the RFM data prep and I find
- in the code
customers['recency'] = (customers['max'] - customers['min'])
- in the docs:
recency represents the age of the customer when they made their most recent purchases. This is equal to the duration between a customer’s first purchase and their latest purchase.
I get further confused by the doc's explanation of the recency/frequency graph where they seem to be using the other definition ("Your coldest customers are those that are in the top-right corner: they bought a lot quickly, and we haven’t seen them in weeks.")
Maybe someone can shed some light on these two definitions? Am I missing something obvious?
from lifetimes.
Even after installing 'pymc3' using pip install pymc3, which showed me that it was successfully installed.
After running the program using Jupyter notebook, python 3.6, I am getting an error.
ModuleNotFoundError: No module named 'pymc3'
from lifetimes.
@CamDavidsonPilon , I was going though the paper[1] by Fader 2004, which states RFM as
“RFM” characteristics: recency (time of most recent purchase), frequency (number of past
purchases), and monetary value (average purchase amount per transaction).
Where you code as pointed out by @ReaBx takes
Recency(recency represents the age of the customer when they made their most recent purchases) and Frequency as (repeat purchases)
customers['frequency'] = customers['count'] - 1
customers['recency'] = (customers['max'] - customers['min']) / freq_multiplier
I am confused as to how this difference in the two recency and frequency defination will affect the CLV modelling?
[1] Fader, Peter S., Bruce GS Hardie, and Ka Lok Lee. "RFM and CLV: Using iso-value curves for customer base analysis." Journal of marketing research 42.4 (2005): 415-430.(http://brucehardie.com/papers/rfm_clv_2005-02-16.pdf)
from lifetimes.
Related Issues (20)
- Wrong monetary_value HOT 3
- Question - Why average Monetary value and not Total meontary value?
- Wrong holdout monetary value HOT 1
- Implementing a bathtub-like hazard-rate AFT model
- ValueError: Some values in recency vector are larger than T vector when data has no issue. HOT 6
- Not Implemented - TypeError: unsupported operand type(s) for +: 'int' and 'str' HOT 4
- How to interpret expected purchase orders in future HOT 3
- Quantitative Metrics to assess model performance HOT 5
- Documentation flow incorrect? HOT 1
- Cross Validation Setup HOT 1
- Unreachable code after fitting betageofitter model HOT 2
- NaN predictions for customers with 0 frequency and 0 recency HOT 1
- Error when running plot_history_alive HOT 3
- data simulated vs holdout purchases HOT 8
- Runtime Warning HOT 3
- How to get conditional probability alive for the next few periods? HOT 1
- SQL statement to transform transactional data into RFM data HOT 1
- Recency Definition HOT 1
- model validation and performance measurement with unseen data HOT 3
- parameters in ModifiedBetaGeoFitter HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lifetimes.