四种确定K-means最佳聚类个数的方法(K-means++)——附代码

这篇具有很好参考价值的文章主要介绍了四种确定K-means最佳聚类个数的方法(K-means++)——附代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

摘要:

1.K-means算法

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

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

4.Gap Value(Gap值)

5.Silhouette Coefficient(轮廓系数)

6.基于Matlab的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个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

K-means的计算步骤:

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

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

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

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

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

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

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

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

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

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

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

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

di是第i个簇中每个点与第i个簇的质心之间的平均距离。dj是第j个簇中每个点与第j个簇的质心之间的平均距离。dij是第i个和第j个簇的质心之间的欧氏距离Dij的最大值表示簇i的最坏簇内-簇间比率。最优聚类解决方案具有最小的Davies Bouldin指数值。

4.Gap Value(Gap值)

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

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

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

5.Silhouette Coefficient(轮廓系数)

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

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

其中,ai是第i个点到与i相同聚类中其他点的平均距离,bi是第i个点到不同聚类中的点的最小平均距离,在聚类中最小。如果第i点是其聚类中唯一的点,那么轮廓系数si被设置为1。轮廓系数的范围从-1到1。一个高的轮廓系数表明该点与它自己的聚类匹配良好,而与其他聚类匹配较差。如果大多数点有一个高的轮廓系数,那么聚类方案是合适的。如果许多点的轮廓系数较低或为负值,那么聚类方案可能有太多或太少的聚类。可以用轮廓系数作为任何距离指标的聚类评估标准。

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

各种指标评价图像:

​通过该程序即可选取最适合的K-means聚类数目

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能

K-means聚类结果可视化:

轮廓系数法确定聚类数量,机器学习与神经网络,聚类,kmeans,算法,机器学习,人工智能文章来源地址https://www.toymoban.com/news/detail-798539.html

7.本文Matlab代码实现:

到了这里,关于四种确定K-means最佳聚类个数的方法(K-means++)——附代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【聚类算法】带你轻松搞懂K-means聚类(含代码以及详细解释)

    聚类是一个将数据集中 在某些方面相似的数据成员 进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为 无监督学习 。 k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要

    2024年02月01日
    浏览(38)
  • k-means聚类算法 心得分享(含python实现代码)

    目录 1.K-means聚类算法 1.1 引言: 1.2 K-Means 算法的基本思想 1.3 K-Means 算法的优缺点: 1.4 K-Means 算法的应用: 2.K-means聚类算法的实现具体步骤 2.1初始化聚类中心 2.2计算每个数据点到聚类中心的距离 2.3确定每个数据点所属聚类簇 2.4更新聚类中心 2.5循环执行步骤2-4,直到达到最

    2024年02月02日
    浏览(46)
  • python机器学习——聚类评估方法 & K-Means聚类 & 神经网络模型基础

    1、随机设置K个特征空间内的点作为初始的聚类中心 2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别 3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值) 4、如果计算得出的新中心点与原中心点一样,那么

    2024年02月12日
    浏览(43)
  • K-Means聚类算法及其python实现(已附上代码至本博客)

    觉得有用的,一腚要先点赞后收藏!!!气死人了,40多个收藏0点赞!! 对于 n代表了x有n维,x上标j表示第j维的特征,下标i表示该向量是第i个样本 簇中心坐标为:(当然,这也是重新计算簇中心坐标的方法!!) 向量 u i = ( u i ( 1 ) , u i ( 2 ) , ⋅ ⋅ ⋅ , u i ( j ) , ⋅ ⋅ ⋅ , u i ( n )

    2024年02月08日
    浏览(42)
  • 【聚类】K-Means聚类

    cluster:簇 这边暂时没有时间具体介绍kmeans聚类的原理。简单来说,就是首先初始化k个簇心;然后计算所有点到簇心的欧式距离,对一个点来说,距离最短就属于那个簇;然后更新不同簇的簇心(簇内 所有点的平均值 ,也就是簇内点的 重心 );循环往复,直至 簇心不变 或

    2024年02月09日
    浏览(35)
  • 【K-means聚类】

    聚类 定义:聚类是一种无监督的机器学习方法,它的主要目的是将数据集中的对象(或点)按照它们之间的相似性分组或聚类。这些聚类(或称为簇)中的对象在某种度量下是相似的,而不同聚类中的对象是不同的。简言之,聚类是将相似的对象归为一类,不同的对象归为不

    2024年02月22日
    浏览(45)
  • 【人工智能】— 无监督学习、K-means聚类(K-means clustering)、K-means损失函数,目标函数

    无监督学习是指在没有标签的数据上进行学习,即没有监督信号的指导下进行模型训练。在无监督学习中,我们主要关注从无标签数据中学习出数据的低维结构和隐藏的模式。 通过无标签数据,我们可以预测以下内容: 低维结构:通过无监督学习算法如主成分分析(PCA),

    2024年02月10日
    浏览(44)
  • k-means聚类算法详解

    什么是特征向量? 用来描述样本点的一组数据,要和我们数学中的向量区别一下,本质来说就是个数组,数组中的每个元素代表从不同角度描述样本点的值。 K-means 是我们最常用的基于 欧式距离 的聚类算法,其认为两个目标的距离越近,相似度越大。 聚类就是对大量末知标

    2024年02月16日
    浏览(34)
  • K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

      目录  一、概述 二、经典K-means算法 三、K-means++算法 四、ISODATA算法 六、数据集测试       在本篇文章中将对四种聚类算法(K-means,K-means++,ISODATA和Kernel K-means)进行详细介绍,并利用数据集来真实地反映这四种算法之间的区别。       首先需要明确的是上述四种算法都属

    2024年01月23日
    浏览(51)
  • Python实现简单k-means聚类

    目录 1.导入原始数据集  2.首次计算中心点 3.进行迭代循环,不断优化样本中心点和聚类结果 4.聚类可视化 通过手动书写k-means聚类算法的逻辑实现聚类(而非使用python内置的sklearn) 不了解k-means聚类算法的话可以先去了解以下这种算法的原理,下面就直接进入正题啦~ 首先我

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包