聚类结果不好怎么办_K-means和谱聚类的比较

本文对比了K-means聚类和谱聚类算法,K-means在数据近似圆形分布时表现良好,但面对复杂形状如同心圆时效果不佳。而谱聚类则能有效处理这类问题。文章通过实例展示了两种算法在二维样本数据上的应用,并探讨了它们的适用场景和局限性。
摘要由CSDN通过智能技术生成

defa6e4f181c8cc5e9d2b1b09c15369c.png

使用工具:Python

(1) K-means clustering algorithm

聚类算法属于无监督的机器学习算法,即没有类别标签y,需要根据数据特征将相似的数据分为一组。K-means聚类算法即随机选取k个点作为聚类中心,计算其他点与中心点的距离,选择距离最近的中心并归类,归类完成后计算每类的新中心点,重新计算每个点与中心点的聚类并选择距离最近的归类,重复此过程,直到中心点不再变化。

距离函数:

c00a50bfb5e46a2cffa29bfe61e715b9.png

代价函数:

694900a4219195e0b01c6a85cd8d9d55.png

注意:使用K-means算法时应首先确定k值,即确定的分类数。

实现:主要包含kmeans; plot; execute三个函数, 确定k值后随机产生index; 使用while进行迭代,一直找到index稳定下来即停止。

数据:使用80个二维样本测试数据,我们期望分成四类。

结果:

用黄色、绿色、蓝色、黑色表示四种聚类,用红色点表示index, 结果如下:

95a399ff87dff26cdc9630bab07af7d5.png

分类结果良好,基本能区分四个角的不同点。

追踪每一个的迭代,结果如下:

c5fe7d27727a0479f29cc38d0b4f343b.png

可见,经过五次迭代后,该算法即找出了四个index的正确位置及分类结果,算法快速而高效。这也是k-means算法的优点,(1)算法原理简单,聚类速度快;(2)容易实现。当潜在簇的形状为大小相近的近似圆形,且每个簇之间聚类较明显,k-means聚类结果比较理想。但是,如果潜在的分类遵循一定的集合形状,k-means聚类还能有这么好的分类效果好?

比如两个同心圆,我们希望内外分成两类,但是使用K-means的结果却是:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值