机器学习算法 之 K-Means聚类

本文深入解析了K-Means聚类算法的核心思想、具体过程及其时间、空间复杂度,并通过实例说明了算法的应用。重点强调了算法的迭代过程,纠正了关于迭代次数的常见误解。

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

K-Means是一种最经典也是使用最广泛的聚类方法。 k-means 算法的工作过程说明如下:首先从n个数据对象任意选择k 个对象作为初始 聚类 中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。
K-Means的思想很简单,对于一个聚类任务,具体过程如下:
  1. 选择K个点作为初始质心  
  2. repeat  
  3.     计算每个点与每个聚类中心的距离(相似度),将每个点指派到最近的聚类,形成K个新的聚类;  
  4.     通过计算新聚类中的所有对象的平均值重新得到每个聚类新的聚类中心;  
  5. until 聚类中心不发生变化或达到最大迭代次数 
这里有个误区,我以前一直理解错误,以为每一次迭代是针对一个对象,计算其最近邻聚类,然后将其分配至该聚类,计算并更新该聚类中心,然后再针对下一个对象做同样的处理(。。。傻么。。。)但实质上,这里的每一次迭代过程指的是针对所有对象,即一次迭代对所有对象都计算与K个聚类中心的距离,然后将其分配到最近的聚类,当所有对象都已经被分配到聚类中之后,根据聚类中所有对象的均值计算新的聚类中心。
时间复杂度:O(tKmn),其中,t为迭代次数,K为簇的数目,m为记录数,n为维数

空间复杂度:O((m+K)n),其中,K为簇的数目,m为记录数,n为维数


参考资料:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值