K-Means属于聚类算法的一种。聚类又属于无监督学习的一种,无监督的算法在训练的时候只需要特征矩阵X,不需要标签。
聚类的目的是将数据划分成有意义或有用的组(或簇)。这种划分可以基于我们的业务 需求或建模需求来完成,也可以单纯地帮助我们探索数据的自然结构和分布。比如在商业中,如果我们手头有大量 的当前和潜在客户的信息,我们可以使用聚类将客户划分为若干组,以便进一步分析和开展营销活动。
可以看出,聚类的最终目的是分类,但是聚类和分类的区别在于:分类是由训练集和测试集的,也就是说事先我们已经有了一部分的带标签的数据(带有分好类别的数据),其任务是根据给定的训练集来对测试集进行分类,这些测试数据集的类别是固定的,它一定会属于某一个类别;而聚类的不同在于它没有所谓的训练集和测试集,并且事先我们也不知道每条数据属于什么类别、属于哪一类,以及一共有多少类,这些信息都是事先无所知的,其任务是按照某种方式,将这类数据按照其相似性,将其分为不同的簇,每一簇的相似性较高,而不同簇的相似度较低。下面一个图形象地展示了其二者的不同之处:
(此图来源于菜菜的sklearn课堂)