I have a test dataset of 11m records. The dataset contains a global customer id and spend figure.
I need to group customers into the following categories:
- 0 Low
- 1 Low/Med
- 2 Med
- 3 Med/High
- 4 High
I tried K-Means to group. See results below.
As you can see 10m records or so are in the low group as 80% of the db has low to negative spend.
If I want to further segment that low group, should I just increase the number of clusters? Or is there a better algorithm given the distribution of the data?
Thanks
count | mean | std | min | 25% | 50% | 75% | Max | |
---|---|---|---|---|---|---|---|---|
Cluster | ||||||||
0 | 10498822.0 | 21.147982 | 30.447597 | -22885.364 | 6.78600 | 11.4520 | 26.30600 | 160.854 |
1 | 714573.0 | 300.654938 | 115.836596 | 160.855 | 207.94600 | 269.0280 | 366.02400 | 651.081 |
2 | 57318.0 | 1002.263623 | 400.515911 | 651.084 | 723.53375 | 841.8320 | 1118.37575 | 2370.803 |
3 | 14415.0 | 3739.988910 | 924.921881 | 2371.056 | 2993.61250 | 3599.1800 | 4319.69000 | 6162.907 |
4 | 3010.0 | 8584.038995 | 2476.616904 | 6163.451 | 6905.48800 | 7861.5815 | 9318.03100 | 22884.357 |