Is there a way to do unsupervised clustering based on similarity (like all other methods), but create clusters by splitting on just one (or specific) features? For example, I have customer data with lots of features, but I want to find the best clustering of data by segmenting the data on specific bands of customer revenue like [\$100, \$1500, \$10000], etc.

I just want to make sure to compare apples to apples in the best possible way. I'm currently thinking a combination of hierarchical clustering (if there's multiple columns) and Random Forest (to split based on specific predictors). I've looked into Unsupervised Random Forest but it seems to just find a best way to cluster data based on similarity by transforming it, and not give how, or which columns they used to split the data.


1 Answer 1


If you formulate this as an optimization problem, you can run it through some optimization solver.

I.e. you would define your model with two thresholds t1 < t2 to partition your data into three clusters on your splitting attribute, and the optimization objective is to maximize the average pairwise similarity to all other members of the same partition.

  • $\begingroup$ Thanks for the input! Do you think this would work via Linear Programming, or it'd require some other form? Asking since I only really know LP. Thanks $\endgroup$ Commented Jun 26, 2017 at 16:30
  • $\begingroup$ I don't use optimizers, so I can't give you recommendations. Since you know LP, you already know more than I do. $\endgroup$ Commented Jun 26, 2017 at 18:04

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.