I have a set of N samples belong to K classes. I am using k-means clustering with Euclidean distance in order to cluster these samples into K clusters. To help the k-means algorithm to group samples of a specific class into one cluster, I initialized the k-means algorithm so that the mean value of each cluster is the mean value of the samples of a specific class.

My question is not about the usefulness of what I mentioned above or the purpose of it, however, my question is: In machine learning, is this called "supervised clustering", "semi-supervised clustering" or just "normal clustering initialized by means of samples of the real class"? I want to know the correct terminology when we use k-means initialized by real-class mean values.

  • 3
    $\begingroup$ Since you don't explicitly use label information, except for initial cluster centers, this is just traditional unsupervised clustering. Note that fully supervised clustering does not exist, that's classification. $\endgroup$ Jan 18, 2014 at 19:40
  • $\begingroup$ Thanks @MarcClaesen. I am still wondering if the initital cluster centers that I use is considered as a "similarity adapting" method. If it is, then this is called "semi-supervised" clustering as mentioned in page 8 of cedric.cnam.fr/~crucianm/src/BriefSurveyClustering.pdf $\endgroup$
    – Abbas
    Jan 18, 2014 at 20:50
  • 1
    $\begingroup$ No, I don't feel this satisfies tag "semi-supervised". Giving the starting cluster centres in K-means is arbitrary. The fact that you give them as "good" from some point of view does not affect the algorithm itself. The algorithm does not know that you "meant" these starting values as a constraint. So, it is just "starting configuration", not "supervision over algorithm". $\endgroup$
    – ttnphns
    Jan 19, 2014 at 7:10
  • $\begingroup$ Thanks a lot @ttnphns. I see, that is now makes sense for me. $\endgroup$
    – Abbas
    Jan 19, 2014 at 8:07

1 Answer 1


K-means is ''unsupervised'' by definition: it does not take the labels into account.

You however performed a ''supervised initialization''.

So I'd call this an unsupervised algorithm that has been initialized in a supervised manner.

And no, I don't think it makes a lot of sense to do it this way.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.