一、引言
K-Means算法是机器学习中最简单、最常见的一种聚类算法。
1.什么是聚类?
通俗来讲,聚类就是将一堆没有标签的原始样本数据,按照某个标准让其中特征一致的样本自动聚成一堆儿,最后原始样本数据聚成了一堆儿一堆儿的。
2.聚类和分类有什么区别吗?
我的理解,通俗来讲的话,聚类之前,我们是不知道有几类的,然后使用聚类算法进行聚。
分类之前,我们是知道类别的,然后使用分类算法,按照各个类别的特征,将原始样本数据进行分类,对应到已经知道的类别。
分类是有监督学习算法,聚类是无监督学习算法。
-------------------------------------------------------------------------
知乎上,我认为不错的回答:
二、K-Means算法的基本概念
三、算法流程
(a)最开始,样本点都是没有标签的。
(b)这里我们设定K=2,随机生成K个初始质心坐标。
(c)然后遍历每一个样本点,计算每一个样本点到两个质心的欧式距离。距离哪一个距离小,就将当前的样本点归为哪一类。
(d)归类完毕之后,计算归类之后,每一类中样本点的新质心。
(e)再次遍历每一个样本点,计算每一个样本点到新质心的欧式距离,按照距离哪一个质心近的原则,重新归类。
(f)不断重新计算质心坐标,不断重新归类…
直到质心坐标不再更新为为止,那样的话,聚类工作也就完成了!