These are completely different methods. The fact that they both use the letter K is a coincidence. [K-means][1] is a clustering algorithm that tries to partition a set of points into K sets. It is unsupervised because the points have no external classification. [K-nearest neighbors][2] is a classification (or regression) algorithm that in order to determine the classification of a point, combines the classification of the K nearest points. It is supervised because you are trying to classify a point based on the known classification of other points. [1]: http://en.wikipedia.org/wiki/K_means [2]: http://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm