k均值聚类算法

K-means聚类算法是一种无监督学习方法,通过计算样本到聚类中心的距离进行分类。算法步骤包括随机选择初始聚类中心,计算样本与中心的相异度并归类,再根据聚类结果更新中心,直至中心不再变化。K-means存在中心点选择、聚类数目指定等问题,且对初始值敏感,可能导致局部最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

K-means聚类算法 

一、K-means聚类原理

1.1 聚类算法的原理 

         我们经常接触到的聚类分析,一般都是数值聚类,一种常见的做法是同时提取 N 种特征,将它们放在一起组成一个 N 维向量,从而得到一个从原始数据集合到 N 维向量空间的映射——总是需要显式地或者隐式地完成这样一个过程,然后基于某种规则进行分类,在该规则下,同组分类具有最大的相似性。 

         聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y的,也就是说样例中已经给出了样例的分类。而聚类的样本中却没有给定y,只有特征x,比如假设宇宙中的星星可以表示成三维空间中的点集。聚类的 目的是找到每个样本x潜在的类别y,并将同类别y的样本x放在一起。比如上面的星星,聚类后结果是一个个星团,星团里面的点相互距离比较近,星团间的星星距离就比较远了。

1.2 K-means聚类原理 

         算法首先随机从数据集中选取 K个点作为初始聚类中心,然后计算各个样本到聚类中的距离,把样本归到离它最近的那个聚类中心所在的类。计算新形成的每一个聚类的数据对象的平均值来得到新的聚类中心,如果相邻两次的聚类中心没有任何变化,说明样本调整结束,聚类准则函数 已经收敛。本算法的一个特点是在每次迭代中都要考察每个样本的分类是否正确。若不正确,就要调整,在全部样本调整完后,再修改聚类中心,进入下一次迭代。如果在一次迭代算法中,所有的样本被正确分类,则不会有调整,聚类中心也不会有任何变化,这标志着 已经收敛,因此算法结束。  

1.3 K-means聚类步骤  

算法步骤一般如下:

 1、从D中随机取k个元素,作为k个簇的各自的中心。

 2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。

 3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。

 4、将D中全部元素按照新的中心重新聚类。

 5、重复第4步,直到每个簇的中心基本不再变化。

 6、将结果输出。 

1.4 K-means聚类简单实例 

         对数据点进行聚类,详细步骤如下所示: 

         首先 3 个中心点被随机初始化,所有的数据点都还没有进行聚类,默认全部都标记为红色,如下图所示:

                                         

然后进入第一次迭代:按照初始的中心点位置为每个数据点着上颜色,重新计算 3 个中心点,结果如下图所示:

                                      

可以看到,由于初始的中心点是随机选的,这样得出来的结果并不是很好,接下来是下一次迭代的结果:

                                                 

可以看到大致形状已经出来了。再经过两次迭代之后࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值