I am looking to perform k-means on my dataset which contains a large number of 0 values. Edit: the last value you see is different to the others, that is simply the sum of transactions, not related to the categorical frequency count. Example: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 189200.579626] [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.06556796] [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.46e-06] [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.46e-06] Each feature is a frequency count of how many times the associated id is seen within a category. When I run k-means, I see that most of the data is clustered in one cluster. +------------+--------+----------------------+ | cluster_id | size | sum_squared_distance | +------------+--------+----------------------+ | 0 | 659187 | 0.999997057952 | | 1 | 3 | 1.33333326876 | | 2 | 1 | 0.0 | | 3 | 3 | 0.666666716337 | | 4 | 1 | 0.0 | | 5 | 1 | 0.0 | | 6 | 1 | 0.0 | | 7 | 1 | 0.0 | | 8 | 1 | 0.0 | | 9 | 11 | 2.72727286816 | +------------+--------+----------------------+ I am assuming that this is because the majority of the dataset has not been seen in a feature category and therefore has a value of 0. What is the best way to overcome this, drop rows where a `0` is seen across each category? Are these rows meaningless to clustering? New to k-means. Thanks, moved from: http://stackoverflow.com/questions/39130303/k-means-clustering-data-with-large-number-of-meaningless-values