Generalized K-Means Clustering