I have an RFM model that I use to segment customers based on RFM score. What I would like to do is:

  1. Understand more about the charateristics of my customers than just their RFM score;
  2. Be able to predict which the RFM segment a non-customer is likely to fall into.

To do this I am planning to overlay other data I have about the customer (demographics, how much they use our other services etc) as indepenent variables in a supervised classification problem with my RFM segments as the dependent variables. I'd then look to use some sort of classification technique (random forrest etc) to build a predictive model that would give me:

  1. The combination of independent variables that correlate with a customer being in any specific RFM segment
  2. The probability of a non-customer being in any given RFM segment given the independent variables (demongraphic information etc)

I am also thinking about using PCA to determine which of the independent variables seem to have the greatest effects on which segmeent a customer falls in before starting the classification.

I have had a look around and I don't see many examples of people using RFM segments as dependent variables in a classification model.

Is this a worthwhile/scientifically sound approach or am I missing something that makes this approach unsuitable?


1 Answer 1


In principle, I do not see any problem with using the RFM score as dependent variable ($y$) since it is just an aggregate or balanced score of R, F, M.

I suggest using random forest or (tree based) boosting (like xgboost, lightgbm), since these techniques are very robust and usually deliver relatively good results (compared to other methods). You can look at "feature importance" from random forest or boosting to see which variables are most important. The main aspect you need to look at in the moment (as it seems) is, if the independent variables have sufficient explanatory power to build a proper model. Random forest seems to be a good choice to start against this backdrop.

I would not suggest using PCA since PCA is a technique for dimensionality reduction. In essence, PCA generates "new" orthogonal features based on the original ones, usually reducing the number of overall features. So PCA is useful when there are many highly correlated features or in case ther are "too many" features.

You may also look at "causal" like linear regression models. These models can tell you "if $x$ changes by some amount, $y$ changes by $\beta$ amount. However, these models are relatively complex and you need to take care about a number of things. So probaly start with a standard predictive random forest and see how ot goes.

  • $\begingroup$ Thank you, Peter. Would you reccomend using the RFM score as the dependent variable (so a discrete range of integers from 3-15) or the categorisation based upon the RFM scores (disecrete categories such as "A" band, which has a score between 12-15, and "B" band, which has a score between 9-11, for example)? $\endgroup$ Commented Oct 19, 2021 at 22:24

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.