I have been looking at machine learning for customer churn and there are lots of examples of customer churn that are really helpful. My question is when I am training my model and I have all my customers and attributes how do I take into consideration normal transactional information.

Every example I have seen there is only one row for each customer with several columns of attributes. What do I do if I want to take transactional data in consideration i.e. normal spending habits? Do I need to make attributes that compare certain transactions for the current month vs the average of the last 12 months(an example) or is there a way to just include the transactional information?


Customer ID Number of transactions month number of transaction type 1 number of transaction type 2
1 7 Jan-20 3 4
1 4 Feb-20 3 1

The transaction type 2 has reduced therefore the customer is likely to leave or

Customer ID, Number of transactions, Current number of transaction type 1 v average, Current number of transaction type 1 v average


I could have got it wrong completely both ways but any constructive input would be much appreciated.


1 Answer 1


In churn analysis, your goal is to score customers as will/will not churn (an even better approach would be risk of churn, but that is neither here nor there at the moment).

If you have multiple transactions per customer, you can summarize those transactions and use them as a feature (what you call an attribute) in your model. RMF (Recency/Monetary/Frequency) analyses might be one approach you can take. In the last year:

  • When was the last time we saw this customer interact with us
  • How much did this customer spend
  • How often does this customer interact with us

Then, use these attributes to help build the model.


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.