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$ – Marc Claesen Jan 18 '14 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 '14 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 '14 at 7:10
  • $\begingroup$ Thanks a lot @ttnphns. I see, that is now makes sense for me. $\endgroup$ – Abbas Jan 19 '14 at 8:07

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, privacy policy and cookie policy

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