I have a data set containing actions taken by customers (e.g., view a product, add a product to cart, purchase product), the product bought (if any) and times of said actions. I am attempting to use K-means clustering to identify the customers who are more likely to purchase a product based on these actions (minus the purchase).

I'm currently clustering using: the number of products viewed, the number of products put in the cart, the mean time between the actions, the variance of the time between the actions, the standard deviation of the time between the actions (all of these values are normalized), as well as the product purchased (if any). The clusters I'm getting contain ~10% buyers and 90% non-buyers, but I'm trying to separate buyers and non-buyers.

Any thoughts on what else I can do? Or should I try another method completely?

Illustration: x axis are the clusters, y axis is the number of customers, red are buyers and blue are non-buyers cluster graph

Update: I made a 3D graph showcasing the clusters, the amount of customers and the mean time between actions (normalized because of reasons) 3D plot

Yet another update: customers (not grouped by cluster, just as is) according to the average number of products they viewed and the average time between actions

number of products x average time

I took some advice and tried using PCA (from this tutorial), and these are the results I got: PCA data

The raw data (x=number of items viewed/carted, y=average time between interactions) raw data graph

Any tips on how to cluster this mess?

  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. $\endgroup$
    – Ben N
    May 17 '18 at 15:50

Your Answer

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

Browse other questions tagged or ask your own question.