Cluster within percentage of data

Hi, I intend to form clusters from a data of 4 variables. These 4 variables are design parameters and each row of the data (200,000 X 4 matrix) correspond to a particular design. I wanted the clusters to be formed in such a way that the similar designs are clubbed together and we can deal with the centroid of the clusters instead of dealing with all the data sets. However, the kmeans cluster use euclidean distance to cluster. This does not serve the purpose as it would put (1,1000) and (1000,1) into the same cluster, in case of 2 variable format. The two designs would be completely different.
What I wanted was that the cluster contains the data sets which are x% of the variable values at the centroid of each cluster. Let's say we have a cluster with centroid (20,10,100,50), then all the data sets in the cluster should be (20+-2,10+-1,100+-10,50+-5) for x=10%. I couldn't find any method in the cluster analysis which could serve the above purpose. Please let me know if the logic I am trying to follow is flawed

5 Comments

I'm not entirely sure I understand what you are doing, but would scaling each column (perhaps by the maximum value of the column) help? You might also want to recenter each column (perhaps by the median of the dataset). Thus, each column would be weighted equally when the clustering algorithm calculates the euclidean distance.
To use kmeans you specify k (the number of clusters). How many clusters are you expecting to see in this 4D data set?
@Matt Scaling and normalization don't help much. The euclidean distance method doesn't provide me the clusters Ii m looking for. In fact, there are points in the cluster which are far from the centroids of the cluster. I was trying relative distance however I have no idea how to implement it. For n observations I have a n X n matrix of relative distances (with diagonal 0). How to cluster them? Please help
@Image I formed 60 clusters when using kmeans. However, I am not happy with the Euclidean method. I am rather trying to implement the relative distance. However, I am not able to progress.
So you know the centroid of each cluster or not? If you know the centroid, I'd say KNNSEARCH could help better. Anyway, your idea looks like a new algorithm to me...

Sign in to comment.

Answers (0)

Asked:

on 30 Jul 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!