Improvement Methods for Determining the Value of k in the K-Means Clustering Algorithm
The issue of traditional k-means clustering algorithm relying too heavily on the number of clusters, k. A new method for determining the optimal number of clusters, k, has been proposed—the double mean method. This algorithm does not rely on a pre-defined k value, but rather calculates the ratio of intra-cluster average distance and inter-cluster average distance to dynamically determine the optimal k value. The innovation of this method lies in the fact that it combines intra-cluster density and inter-cluster separation, thus more accurately reflecting the true structure of the data. By comparing the k value obtained on multiple public datasets with the true number of classes in the data or with the k value obtained using the elbow method, the effectiveness of the new method is demonstrated.
Data Mining
聚类分析是一个非监督的研究方式,用以发掘数据中潜在的特征,通过测量数据点之间的相似性并把它们分类为不同的组合。K-means算法是最经典也是应用最广泛的聚类算法
针对上述的缺点,来自不同领域的学者纷纷提出了相应的改进算法。王森等人在文献
本文基于k-means聚类算法,提出确定聚类数k值的改进方法
文献
,
簇间的距离
其中 为第i个簇, 为第i个簇中样本个数,k表示簇的个数, 为第i个簇的质心,M为所有数据的中心。计算 与 的比值 ,当 取局部最小即下降最快时,求出最优聚类数。在应用时发现, 的值有时不单调,容易出现反复。为了处理这种情况将两个公式分别改进。
首先,计算簇内平均距离d。簇内平均距离定义为每个簇中数据与该簇质心之间的距离的总和的平均值,其计算公式为:
其中n为样本的总个数。d越小,说明簇内的数据越紧凑,聚类效果越好。
接下来,计算簇间平均距离d0。簇间平均距离定义为每个簇的质心之间距离的平均值,d0的计算公式为:
簇之间的距离d0越大,类间的相似度就越小,聚类效果越好
最后,计算簇内平均距离与簇间平均距离的比值,并将此值命名为dd值。其表达式为:
这个值可以作为评估聚类效果的标准。当簇内样本紧密而簇间距离较远时,聚类效果通常较好,此时dd值较小。反之,如果簇内样本分散或簇间距离过近,聚类效果较差,此时dd值会增大。dd值越大,聚类效果越差。显然当dd的值取局部最小值时,聚类效果最好,此时的k值即为最优聚类数,这种确定k值的方法称为双均值法。
基于优化初始聚类中心的K-means算法可以描述如下:
1) 初始化过程:设置k的初始值为1,并计算此时的EE值(误差平方和或能量函数值)。
2) 逐步增加k值:将k增加1,并重新计算EE值,将结果记录下来。
3) 确定最优k值:随着k的逐渐增大,并在每个k值下运行传统的K-means算法,并记录每次运行得到的EE值。选择使得EE值局部最小的k值作为最优聚类数,并确定最终的k值。
4) 选择初始聚类中心:从数据集中随机选择第一个数据点作为第一个聚类中心。
5) 重复选择聚类中心:继续从数据集中随机选择数据点,直到选择出k个初始聚类中心。
6) 计算距离:计算数据集中每个样本点到最近聚类中心的距离,记为D(x)。
7) 更新聚类中心:根据每个点D(x)的值,我们为各个类别挑选出新的聚类中心。选择的依据是概率,这个概率与D(x)的值成正比,也就是说,距离越近的点被选为新聚类中心的可能性越大。
8) 重复更新过程:不断重复步骤(7),直到所有的k个聚类中心都被选中并更新。
9) 运行K-means算法:使用确定的最优k值和更新后的聚类中心,运行传统的K-means算法进行聚类。
通过上述步骤,我们可以实现基于优化初始聚类中心的K-means算法,以改进传统算法的效率和准确性。
本文的实验环境为Intel CPU、16 GB内存、500 GB硬盘、Windows11操作系统和R语言软件。为了检测我们的方法相对于先前的方法所呈现的改进,我们用双均值法、文献
手肘法是一种简单但有效的技术
手肘法核心思想:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么簇内平方和自然会逐渐变小
本文采用的4个数据集均为公共数据集,分别为swiss、USArrests、iris、wine.公共数据集Swiss是一个经典的数据集,常用于数据挖掘和机器学习算法的教学和研究。它包含了关于瑞士的一些统计数据,其中每条数据包括了7个变量:Fertility (生育率)、Agriculture (农业)、Examination (考试)、Education (教育)、Catholic (天主教徒比例)、Infant Mortality (婴儿死亡率)、和Region (地区)。其优点数据集的变量较少,有助于分析结果的解释合可视化;公共数据集USArrests是R语言中的一个经典数据集,包含了美国48个州和Washington D.C.的犯罪率数据,其中包含了四个变量:Assault (袭击罪)、Murder (谋杀罪)、UrbanPop (城市人口比例)和Rape (强奸罪);公共数据集iris是机器学习和统计学中经典的数据集之一,它包含了三种不同品种的鸢尾花(setosa、versicolor和virginica)各50个样本的数据,其中包括了花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)和花瓣宽度(petal width)四个特征;公共数据集wine是另一个经典的机器学习数据集,它包含了三个不同来源的葡萄酒(类别分别为1、2、3),每个类别有59个样本,共178个样本,每个样本有13个特征,包括了葡萄酒的化学特征。以上公共数据集均有着数据结构简单,同时包含了多个特征合多个类型,并且被广泛使用合研究,有利于结果的真实性和可信度,故我们采取四个公共数据集同时进行研究,形成对照,其中iris数据集和wine数据集已知是三类的,swiss数据集和USArrests数据集没有明确的类别划分。
实验结果如
本文又将双均值法与EE法在不同数据集上求k值的时间进行了比较,我们定义了时间差的计算公式如下:
两种方法在四个数据集上的运行时间差如
由
本文基于k-means算法,通过计算簇内平均距离与簇间平均距离的比值来确定最佳聚类数k,与原方
法和手肘法对比可以得到相同的k值,同时为了验证该方法的有效性,又比较了该方法的时间性能,双均值法在4个数据集上求出k值的时间均少于EE法。实验证明,改进之后的双均值法有效。
该方法的提出不仅解决了k值选择问题,还为聚类算法的研究提供了新的视角,并在图像分割、社交网络分析、市场细分等领域展现了广阔的应用前景。由于其原理和实现的简单性,双均值法对于非专业数据分析师来说是一个有吸引力的选择。未来工作将探讨该方法在不同数据集上的表现,并研究如何将其与其他聚类算法结合,以进一步提升聚类任务的整体性能。
河南科技大学2023年大学生创新创业训练计划项目(2023231)。