查看原文
其他

第10.2节 Kmeans聚类算法

空字符 月来客栈 2024-01-21

各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。

本期推送内容目录如下,如果本期内容对你有所帮助,欢迎点赞、转发支持掌柜!

  • 10.2 kmeans聚类算法
    • 10.2.1 算法原理
    • 10.2.2  值选取
    • 10.2.3 kmeans聚类示例代码
    • 10.2.4 小结
    • 引用

10.2 kmeans聚类算法

第10.1节中笔者介绍过,聚类的思想是将具有同种特征的样本聚在一起。换句话说,同一个簇中的样本点之间都具有高度的相似性,而不同簇中的样本点则具有较低的相似性,因此,聚类算法的本质又可被看成不同样本点间相似性的度量,聚类的目的就是将相似度较高的样本点放到一个簇中。

由于不同类型的聚类算法有着不同的聚类原理,以及相似性评判标准。下面笔者就先介绍聚类算法中最常用的-means聚类算法。

10.2.1 算法原理

-means聚类算法也被称为均值聚类,其主要原理为以下几点[1]:

(1) 随机选择个样本点作为个簇的初始簇中心。

(2) 计算每个样本点与这个簇中心的相似度,并将该样本点划分到与之相似度最大的簇中心所对应的簇中。

(3) 根据每个簇中现有的样本,重新计算每个簇的簇中心。

(4) 循环迭代步骤(2)和步骤(3),直到目标函数收敛,即簇中心不再发生变化。

图10-2所示为-means聚类过程的示例。在图10-2中,iter=0表示聚类过程尚未开始,即正确标签下的样本可视化结果(每种颜色表示一个类别),其中3个黑色圆点为随机初始化的3个簇中心。iter=1表示算法第1次迭代后的结果,可以看到此时的算法将左边原本2个簇的样本点都划分到了1个簇中,而右下角原本1个簇的样本点却被聚类成了2个簇。之后,kmeans聚类算法依次进行反复迭代,当第4次迭代完成后,可以发现3个簇中心基本上已经位于3个簇中了,被错分的样本也在逐渐减少。当进行完第5次迭代后,可以发现基本上已经完成了对整个样本的聚类处理,只需再迭代几次便可收敛。

从图10-2所示的聚类结果可以再次印证,聚类算法只会告诉我们哪些样本点属于同一个类别(同一个簇),但是无法告诉我们每个簇到底属于什么类别。以上就是-means聚类算法在整个聚类过程中的变化情况,至于其具体的求解计算过程将在10.3节中进行介绍。

图 10-2 -means聚类原理示意图

10.2.2 值选取

经过上面的介绍,相信各位读者对于-means聚类算法的基本原理已经有了一定的了解,但现在有一个问题,如何来确定聚类的值呢?也就是说,我们需要将数据集聚成多少个簇呢?如果已经很明确数据集中存在多少个簇,则直接指定值即可。如果并不知道数据集中有多少个簇,则需要结合另外一些办法进行选取,例如查看轮廓系数、多次聚类结果的稳定性等。

为你认可的知识付费,欢迎订阅本专栏阅读更多优质内容!

10.2.3 kmeans聚类示例代码

继续滑动看下一个

第10.2节 Kmeans聚类算法

空字符 月来客栈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存