K-means算法的原理、优缺点

文章内容转载自:http://blog.csdn.net/sinat_35512245/article/details/55051306


                                                               K-means方法是一种非监督学习的算法,它解决的是聚类问题

1、算法简介:K-means方法是聚类中的经典算法,数据挖掘十大经典算法之一;算法接受参数k,然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足聚类中的对象相似度较高,而不同聚类中的对象相似度较小。

2、算法思想:以空间中k个点为中心进行聚类,对最靠近他们的对象归类,通过迭代的方法,逐次更新各聚类中心的值,直到得到最好的聚类结果。

3、算法描述:

(1)适当选择c个类的初始中心;
(2)在第k次迭代中,对任意一个样本,求其到c个类的各中心的距离,将该样本归到距离最短的那个中心所在的类(也成为簇);
(3)利用均值等方法更新该类的中心值;
(4)对于所有的C个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束;否则继续迭代。

注:对于距离函数和中心类型的某些组合,算法总是收敛到一个解,即K均值到达一种状态,聚类结果和中心都不再改变。但为了避免过度迭代所导致的时间消耗,实践中,也常用一个较弱的条件替换掉“中心不再发生变化”这个条件。例如,使用“直到仅有1%的点改变簇”。

4、算法举例:

   详细内容参看:http://blog.csdn.net/sinat_35512245/article/details/55051306

5、优、缺点:

优点:

1、该算法时间复杂度为O(tkmn),(其中,t为迭代次数,k为簇的数目,m为记录数,n为维数)与样本数量线性相关,所以,对于处理大数据集合,该算法非常高效,且伸缩性较好;

2、原理简单,实现容易。

缺点:

1、聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;

2、Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。(可以使用K-means++算法来解决);

3、结果不一定是全局最优,只能保证局部最优;

4、对噪声和离群点敏感;

5、该方法不适于发现非凸面形状的簇或大小差别很大的簇;

6、需样本存在均值(限定数据种类)。

6、算法改进

针对上述第2个缺陷,可以使用Kmeans++算法来解决。 k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。wiki上对该算法的描述是如下:

从输入的数据点集合中随机选择一个点作为第一个聚类中心;
对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x);
选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大;
重复2和3直到k个聚类中心被选出来;
利用这k个初始的聚类中心来运行标准的k-means算法。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: K-means算法的优点是简单易实现,计算效率高,适用于大规模数据集。K-means++算法在初始质心选择上进行了改进,能够选择更好的初始质心,提高算法的收敛速度,降低陷入局部最优解的风险。增量式K-means算法适用于大规模数据集,每次只处理一个数据点,不断更新质心,可以大大提高计算效率。\[1\]\[2\]然而,K-means算法也有一些缺点,例如对初始质心的选择敏感,容易陷入局部最优解,对噪声和异常值敏感,需要事先确定聚类数目。此外,K-means算法对数据的分布假设是各个簇的形状是球形的,对于非球形的簇效果可能不好。\[1\]\[3\] #### 引用[.reference_title] - *1* *2* [[机器学习]K-means算法详解:原理优缺点、代码实现、变体及实际应用](https://blog.csdn.net/ShiinaMashiro0402/article/details/129980040)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [K-means算法原理优缺点](https://blog.csdn.net/Anakin6174/article/details/107723637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值