算法原理
K-Means聚类的核心思想是将含有n个对象或元组的数据集X={x1, x2, …, xn}划分为K个簇,每个簇至少包含一个对象且每个对象属于且仅属于一个簇;划分时,同一个簇中的对象的距离尽可能地近,不同簇之间的对象的距离尽可能地大。K-Means划分的各个簇最终使均方误差最小,即
其中,是第j个对象,j=1,2,…,n,
为第i个簇的中心;
簇的表示有两种方法:①K平均:簇的均值代表整个簇;②K中心点:簇的中心区域的某个值代表整个簇;
优缺点
优点:
·原理简单,易于实现且可解释性强;
·收敛速度快,在大多数情况下能够在较短的时间内收敛到较好的解。
缺点:
·需要手动指定簇的个数K,且该值的选择对最终聚类效果的影响较大;
·对于非凸的簇结构,K-Means算法的表现不佳,容易陷入局部最优解;
·初始的簇中心点的随机选择可能导致不同的聚类结果;
·不适合处理密度分布不均的数据集。
应用场景
K-Means聚类算法在实际应用中有着广泛的用途,包括但不限于:
·客户分群:在市场营销领域,K-Means算法可以帮助企业根据客户的购买记录、行为偏好等信息将客户分成不同的群体,以便制定更加精准的营销策略。
·图像分割:在计算机视觉领域,K-Means算法可以用于图像分割任务。通过将图像中的像素点按照颜色、亮度等特征进行聚类,可以实现图像的自动分割和识别。
·文本聚类:在自然语言处理领域,K-Means算法可以用于文本聚类任务。通过将文本数据表示成向量形式,并利用K-Means算法进行聚类,可以实现文本的自动分类和主题提取。
K-Means++
K-Means是对K-Meand的改进,主要区别在于对初始聚类中心的选取方法不同。假设指定的簇的个数为K,选取初始聚类中心点:①随机从给定的数据集D中选取一个对象作为第一个聚类中心;②在选取第i个聚类中心点时(i=2, 3, …, K),距离当前i - 1个簇中心点越远的点会有更高的概率被选中。
改进非常直观简单但有效:初始聚类中心互相离得越远越好。
拓展——聚类评估
在数据集上进行聚类的可行性评估和被聚类方法产生的结果的质量的评估,主要任务:
① 聚类趋势评估:评估该数据集是否存在非随机结构,聚类分析仅当数据中存在非随机结构才有意义;
②确定数据集中的划分簇数;
③测定聚类质量。
聚类趋势评估
非随机结构在这里指的是数据集中存在的、不是由随机噪声或纯随机性造成的内在模式或规律性。这些模式或规律性可能表现为样本之间的相似性或差异性,它们使得数据集可以被划分为有意义的群组。
评估数据的聚类趋势,通常使用统计测试、可视化方法(如散点图、热力图等)或专门的聚类趋势指数来评估数据的内在结构。这些评估结果可以帮助研究人员决定是否进行聚类分析,以及选择合适的聚类算法和参数。
若要用专门的聚类趋势指数进行聚类趋势评估,可以评估数据集被均匀分布产生的概率,如使用霍普金斯统计量(Hopkins Statistic),可以检验空间分布的变量的空间随机性。如果数据集是随机分布的,则