# How can I do constrained kmeans in Matlab?

7 views (last 30 days)
Ninto Antony on 24 Aug 2020
Commented: Ninto Antony on 28 Aug 2020
I have an n*p matrix. I want to do normal kmeans but there is a limit such that the max number of sum of values in third column of the cluster should be 100. Can you please help
Shubham Rawat on 28 Aug 2020
Edited: Shubham Rawat on 28 Aug 2020
Hi Ninto,
As per my understanding, you are trying to apply some condition on the cluster matrix. Could you please shed some more light on your question?
Ninto Antony on 28 Aug 2020
I have 600 points with me in a matrix with three columns. The first and second columns represent the latitude and longitude of the point The third column is a number(population) for that point. I want to cluster in such a way that the sum of all the population in one cluster is in between 300 and 350. If the above condition is met I want to get the centroid of that cluster.
Can you please guide me as to how I should proceed

Shubham Rawat on 28 Aug 2020
Hi Ninto,
As per my knowledge there is no as such function in MATLAB which can do constrained K-means clustering. In standard K-means, clustering is based upon only distances. You may have to build your own code for adding any constraints.
May be a good start would be if you:
• Assigned population to clusters.
• Then compute centroids of clusters.
• Assign points to centroids such that sum of population in that is in between 300-350.
##### 3 CommentsShow 1 older commentHide 1 older comment
Shubham Rawat on 28 Aug 2020
You have to build your own code like K-means from scratch. In that you have to add constraints in the clusters that sum of the popluation is in between 300-350.
Ninto Antony on 28 Aug 2020
I can't even understand the code for normal kmeans. I think I would need some external help. But thanks for the solution ðŸ˜Š

### Categories

Find more on k-Means and k-Medoids Clustering in Help Center and File Exchange

R2019a

### Community Treasure Hunt

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

Start Hunting!