首页 > 编程语言 >(Matlab实现)K-means算法及最佳聚类数目的确定

(Matlab实现)K-means算法及最佳聚类数目的确定

时间:2024-09-10 09:23:43浏览次数:12  
标签:系数 means 距离 算法 Matlab 聚类 轮廓

  目录

摘要:

1.K-means算法

2.Calinski-Harabasz Criterion(卡林斯基-哈拉巴斯指标,CH值)

3.Davies-Bouldin Criterion(戴维斯-博尔丁指标,DB值)

4.Gap Value(Gap值)

5.Silhouette Coefficient(轮廓系数)

6.基于Matlab的K-means聚类及最佳聚类数选取结果:

各种指标评价图像:

K-means聚类结果可视化:

7.Matlab程序实现:


摘要:

Kmeans算法中,K值所决定的是在该聚类算法中,所要分配聚类的簇的多少。Kmeans算法对初始值是⽐较敏感的,对于同样的k值,选取的点不同,会影响算法的聚类效果和迭代的次数。本文通过计算原始数据中的:CH值、DB值、Gap值、轮廓系数,四种指标来衡量K-means的最佳聚类数目,并使用K-means进行聚类,最后可视化聚类的结果。

1.K-means算法

k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

K-means的计算步骤:

2.Calinski-Harabasz Criterion(卡林斯基-哈拉巴斯指标,CH值)

卡林斯基-哈拉巴斯准则有时被称为方差比准则(VRC)。卡林斯基-哈拉巴斯指数定义为

其中,SSB是总体簇间方差,SSW是总体簇内方差,k是簇数,N是观测数。

定义良好的簇具有较大的簇间方差(SSB)和较小的簇内方差(SSW)。VRCk比率越大,数据分区越好。要确定最佳聚类数,最大化关于k的VRCk。最佳聚类数对应于具有最高卡林斯基-哈拉巴斯指数值的解。

卡林斯基-哈拉巴斯准则最适合于具有平方欧几里德距离的k均值聚类解。

3.Davies-Bouldin Criterion(戴维斯-博尔丁指标,DB值)

Davies-Bouldin 准则基于聚类内距离和聚类间距离的比率。戴维斯-博尔丁指数定义为:

其中,Di,j是第i个和第j个簇的簇内到簇间距离比。在数学上:

di是第i个簇中每个点与第i个簇的质心之间的平均距离。dj是第j个簇中每个点与第j个簇的质心之间的平均距离。dij是第i个和第j个簇的质心之间的欧氏距离

Dij的最大值表示簇i的最坏簇内-簇间比率。最优聚类解决方案具有最小的Davies Bouldin指数值。

4.Gap Value(Gap值)

一个常见的聚类评估的图形方法是将误差测量值与几个建议的聚类数量作对比,并找出这个图形的 "肘部"。肘部 "出现在误差测量的最大幅度下降处。差距标准通过将 "肘部 "的位置估计为具有最大差距值的聚类的数量来正式确定这一方法。因此,在差距准则下,最佳的集群数量对应于在一个容忍范围内具有最大的局部或整体差距值的解决方案。具体公式如下:

其中,n是样本量,k是被评估的聚类数量,Wk是聚类内分散度的集合测量。

5.Silhouette Coefficient(轮廓系数)

每个点的轮廓系数是衡量该点与同一聚类中的其他点的相似程度,与其他聚类的点相比。第i个点的轮廓系数si定义为:

其中,ai是第i个点到与i相同聚类中其他点的平均距离,bi是第i个点到不同聚类中的点的最小平均距离,在聚类中最小。如果第i点是其聚类中唯一的点,那么轮廓系数si被设置为1。

轮廓系数的范围从-1到1。一个高的轮廓系数表明该点与它自己的聚类匹配良好,而与其他聚类匹配较差。如果大多数点有一个高的轮廓系数,那么聚类方案是合适的。如果许多点的轮廓系数较低或为负值,那么聚类方案可能有太多或太少的聚类。

可以用轮廓系数作为任何距离指标的聚类评估标准。

6.基于Matlab的K-means聚类及最佳聚类数选取结果:

各种指标评价图像:

K-means聚类结果可视化:

7.Matlab程序实现:

部分代码:

标签:系数,means,距离,算法,Matlab,聚类,轮廓
From: https://blog.csdn.net/qq_58146006/article/details/142083116

相关文章

  • 【用于电能质量分类的ML和DWT】智能电网中高级电能质量干扰鲁棒分类器的机器学习应用(M
    ......
  • 【图像去噪】实用小技巧 | 使用matlab将.mat格式的图像转成.png格式的图像,适用于DnD数
    请先看【专栏介绍文章】:【图像去噪(ImageDenoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)图像形式的DND数据集(.png格式)下载链接见本文底部,订阅专栏免......
  • 多输入多输出 | Matlab实现DBO-BP蜣螂算法优化BP神经网络多输入多输出预测
    多输入多输出|Matlab实现DBO-BP蜣螂算法优化BP神经网络多输入多输出预测目录多输入多输出|Matlab实现DBO-BP蜣螂算法优化BP神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料预测效果基本介绍多输入多输出|Matlab实现DBO-BP蜣螂算法......
  • MATLAB卡尔曼|卡尔曼滤波的公式【线性】
    卡尔曼滤波卡尔曼滤波(KalmanFilter)是一种用于估计系统状态的数学算法,不是类似于高通、低通滤波器那样的频域滤波。卡尔曼滤波基于线性动态系统的假设,它将系统的状态表示为均值和协方差矩阵,通过递归地更新和预测这些值来实现对系统状态的估计。卡尔曼滤波有两个主要的步......
  • Matlab 声波黑洞捕获波:同时减少声音反射和传播(APL文章)
    参考文献:[1]MiY,ZhaiW,ChengL,etal.Wavetrappingbyacousticblackhole:Simultaneousreductionofsoundreflectionandtransmission[J].AppliedPhysicsLetters,2021,118(11):114101-. DOI:10.1063/5.0042514.        在许多应用中,以行波形......
  • Matlab 一维层状声子晶体振动传输特性
        一维声子晶体的传递矩阵法是一种用于研究声波在一维周期性结构中传播的方法。这种方法基于‌波动方程和周期性边界条件,通过计算声波在不同介质中的传播特性,进而分析声子晶体的带隙结构。传递矩阵法可以有效地预测声波在一维声子晶体中的传播行为,包括透射和反射系数等......
  • MATLAB车牌识别系统
    MATLAB车牌识别系统是一个基于MATLAB开发的用于识别和提取车牌信息的系统。该系统使用图像处理和机器学习算法来实现车牌的定位和字符识别。以下是一个基本的MATLAB车牌识别系统的工作流程:图像预处理:首先,将输入的图像进行预处理,包括灰度化、高斯平滑、边缘检测等操作,以提高......
  • MATLAB实现Dijkstra算法和Floyd算法
    目录1、文件功能介绍2、代码执行效果展示3、Dijkstra算法求图的单源最短路径4、DijkstrafullPath的更新逻辑5、DIjkstra算法流程图6、Floyd算法实现图的任意两点间最短路径7、Floyd算法流程图8、FloydfullPath的更新逻辑(非递归算法)1、文件功能介绍代码文件功能wor......
  • Python和MATLAB(Java)及Arduino和Raspberry Pi(树莓派)点扩展函数导图
    ......
  • 长短期记忆神经网络-LSTM回归预测-MATLAB代码实现
    一、LSTM简介(代码获取:底部公众号)长短期记忆神经网络(LongShort-TermMemory,LSTM)是一种循环神经网络(RecurrentNeuralNetwork,RNN)的变体。相比于传统的RNN,LSTM能够更好地处理长期依赖关系,适用于许多序列建模任务,包括回归预测。在LSTM中,每个时间步都有一个隐藏状态(hiddenst......