I'm trying to do some analysis on customers behavior. Basically, I have information on customer's loyalty points activities data (e.g. how many points they have earned, how many points they have used, how recent they have used/earned points etc).

I'm just wondering how should I go about clustering customers based on the above information? I'm trying to apply the RFM concept then use K-means to segment my customers (although it is a little bit more complicated as I have a few more variables than just R,F,M , for instance, I have recency, frequency and monetary on both points earn and use, as well as other ratios and metrics). Is RFM a good way to do this?

Essentially I have two objectives:

  1. To segment customers

  2. Via segmenting customers, identify changes in customers behavior (e.g.customers who spent all of their points before churning, or in other words, are customers who all of the sudden spent all of their points have a higher propensity to leave the program and churn?), provided that segmentation is the right method for such task?

    Clustering <- kmeans(RFM_Values4, centers = 10)

Please enlighten me, need some guidance on the best methods to tackle such problems.


1 Answer 1


so breaking it down to 3 points of interest:

  1. RFM Approach
  2. Segmentation via clustering
  3. Changes in behavior

RFM is a widely accepted way of customer segmentation. Since you have more data than traditional RFM scores, it might be worthwhile to fit a simple tree based model (GBM?) to your y variable of interest (lifetime value, last purchase etc.) and see which predictors are considered significant. At least in R most packages supply stats on variable importance. This is merely exploratory analytics.

For segmentation, try hierarchical clustering that let's you choose your cutoff value and just determine the best number of centers rather than arbitrarily supply number of expected center.

Without looking at data I couldn't comment on the kind of insights you can get once you've got your clusters. But if you have labeled data (customers that have churned vs. active) then you could start to do some very interesting boxplots for churned customers from each segment with their behavior (spending points etc) on the y axis.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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