K-means算法原理以及其缺点

K-means算法作为经典的无监督聚类方法,通过选取质心并不断优化聚类划分,实现数据对象的合理分组。然而,该算法在运行速度、K值选择和初始化质心等方面存在挑战。本文深入探讨了K-means算法的工作原理及其面临的主要问题。

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

K-means是一种经典unsupervised的聚类算法。其算法描述如下:

输入:聚类个数-k,N个数据对象

输出:每个数据对象所属的聚类label(满足方差最小)


  1. 从N个数据对象中挑选出k个质心。
  2. 计算N个数据对象距离不同质心的距离,并将N个数据对象划分到与之距离最小的质心,形成新的k个聚类。
  3. 重新计算步骤2中获取新的k个聚类的质心,计算方法为求取聚类中所有数据对象的均值。
  4. 重复2-3步骤,直到每个聚类的数据成员不再发生变化。

K-means主要的缺点如下:
  1. 运行速度。虽然通常情况下,k-means执行的循环次数要少于数据对象的个数。但是对于worst cases,其执行的时间复杂度将是super-polynomial的。
  2. K值的选取。在执行程序前,需要给定K值的大小。然而对于不同的K值,划分的结果当然不同,因此确定最合适的K值非常关键。
  3. 初始化K个centroid。centroid的初始选取对于划分结果亦非常关键。
  4. K-means对于数据不同的维度“一视同仁”,缺乏轻重之分。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值