首页 理论教育K-Means 聚类算法优化简介

K-Means 聚类算法优化简介

【摘要】:算法9.1K-Means聚类选择一些类/组,并随机初始化它们各自的中心点,中心点是与每个数据点向量长度相同的位置。K-Means采用的启发式方式很简单,用下面一组图就可以形象地描述。图9-1K-Means的启发式方式(见彩插)

K-Means算法是最常用的聚类算法,主要思想是:在给定K值和K个初始类簇中心点的情况下,首先把每个点(也称为数据记录)分到离其最近的类簇中心点所代表的类簇中,所有点分配完毕之后,根据一个类簇内的所有点重新计算该类簇的中心点(取平均值),然后再迭代地进行分配点和更新类簇中心点的步骤,直至类簇中心点的变化很小或达到指定的迭代次数[2]

算法9.1 K-Means聚类

(1)选择一些类/组,并随机初始化它们各自的中心点,中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(中心点的数量)。

(2)计算每个数据点到中心点的距离,数据点距离哪个中心点最近就划分到哪一类中。

(3)计算每一类的中心点作为新的中心点。

(4)重复以上步骤,直到每一类中心在每次迭代后变化不大为止。也可以多次随机初始化中心点,然后选择运行结果最好的一个[3]

基本原理:假设簇划分为(C1,C2,…,Ck),我们的目标是最小化平方误差E:

式中,μi为簇Ci的均值向量,有时也称为质心,其表达式为

直接求式(9.2)的最小值并不容易,需要采用启发式的迭代方法。K-Means采用的启发式方式很简单,用下面一组图就可以形象地描述。

图9-1(a)表达了初始的数据集,假设k=2。在图9-2(b)中,首先随机选择两个k类所对应的类别质心,即图中的红色质心和蓝色质心;然后分别求样本中所有点到这两个质心的距离,并标记每个样本的类别为与该样本距离最小的质心的类别。如图9-1(c)所示,经过计算样本与红色点质心和蓝色点质心的距离,我们得到了所有样本点的第一轮迭代后的类别。此时,对当前标记为红色和蓝色的点分别求其新的质心。如图9-1(d)所示,新的红色质心和蓝色质心的位置已经发生了变动。图9-1(e)、 (f)重复了在图9-1(c)、(d)的过程,即将所有点的类别标记为距离最近的质心的类别并求新的质心。最终我们得到的两个类别如图9-1(f)所示。

图9-1 K-Means的启发式方式(见彩插)