I'm working on a propensity model, predicting whether customers would buy or not. While doing exploratory data analysis, I found that customers have a buying pattern. Most customers repeat the purchase in a specified time interval. For example, some customers repeat purchases every four quarters, some every 8,12 etc. I have the purchase date for these customers. What is the most useful feature I can create to capture this pattern in the data?. I'm predicting whether in the next quarter a particular customer would buy or not?. I haven't decided on the model yet. Should I create features based on the model I select, or will a particular feature work across all the models? I appreciate any help you can provide.

Additional Info: A customer repeat purchases every four quarters, and the last purchase was made three quarters before. I'm confident that this quarter, the customer will repeat the purchase. I want the model to capture this pattern. What feature or combination of features can capture this pattern?

  • $\begingroup$ If there is a clear repeat-purchase behavior, I suggest to start simple and (inspired by the classic RFM model) craft a recency (R, how much time elapsed since the customer's last purchase) and frequency (F, how often the customer repeats purchase). $\endgroup$
    – lpounng
    May 24, 2022 at 2:08
  • $\begingroup$ "Should I create features based on the model I select, or will a particular feature work across all the models?" Usually you can brainstorm and craft any features which deem relevant, and run feature selection against models. I'd say if a feature is useful for one model, usually it would also be useful for others. $\endgroup$
    – lpounng
    May 24, 2022 at 2:13

1 Answer 1


Usually you want a feature to be important regardless of the model. For customers there is usually 4 types of data you can use 1) operational data - usually from a database. Contains the history of all purchases they have made, product bought, how it was ordered (online, delivered etc). 2) Profile data - How long have they been a customer, products they have chosen in the past, frequency and how recent it has been purchased 3) Demographic data - Age, Gender, where they live etc. 4) Attitudinal or preference data - Data obtained from surveys - Would they buy something that was similar to x....

I don't know what data you have but they all are important. Often people just rely on transactional data, since it is readily available, but that often doesn't tell the whole story.

The more types of data that you can collect that are uncorrelated with each other, the better you will be in identifying which predictors are important.

That is the first step. Then to run a propensity model you look for customers that 'look like' customers from the past that have the profile you are looking for. There are several ways to do propensity modeling but the basic way of doing it is thru regression.

  • $\begingroup$ Thanks, @Ralph Winters. I need a few clarifications. How is this a classification problem?. Do you have any suggestions for the feature to capture the repeating purchase behaviour? $\endgroup$
    – NAS_2339
    May 24, 2022 at 4:45
  • $\begingroup$ I doesn't have to be a classification problem. I was saying that you could set it up as a logistic regression, e.g those who bought after an ad campaign, vs. those who did not and compute the propensity score from the output. $\endgroup$ May 24, 2022 at 13:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.