Customer segmentation involves dividing customers into groups based on certain characteristics they share, such as their demographics, geographical location, their interests or their behaviour. Doing so allows marketers to personalise their marketing campaigns, to identify potentially profitable customers and to develop customer loyalty.
In this project I use K-means clustering, which is an unsupervised form of machine learning, to segment customers of an online retail company using data regarding thier purchasing behaviour.
I follow a marketing technique known as RFM analysis, which derives insights based on the following features:
- Recency (How recent was the customer's last purchase?)
- Frequency (How often do they purchase?)
- Monetary Value (How much do they spend?)
The project is written in Python and the steps covered in the Jupyter Notebook are as follows:
- Import and clean data
- Feature extraction: RFM analysis
- Pre-processing (remove outliers and feature scaling)
- Clustering with K-means
- Observations and conclusions
Please see here for a version of the Notebook with the interactive plot displayed.
- Group 1 (green): less frequent, less recent and lower overall spend. This will represent the least valuable customer.
- Group 2 (red): less frequent, lower overall spend but more recent. This group will be among those to target for promotions.
- Group 3 (blue): more recent, more frequent and the higher spenders. This represents the most valuable since they are typically the most frequent, most recent and higher spending customers.
