#聚类

##一、目的
将具有相似特征的样本聚成一类,与其他类别进行有效区分。
##二、聚类的研究方法
###1.基于层次的聚类
层次聚类、BIRCH算法(平均迭代规约和聚类)、CURE算法(代表点CHAMELEON算法(动态模型)
###2.基于划分的聚类
Mean算法(平均)、K-MEDOIDS算法(中心点)、CLARANS算法(选择)K-prototype算法
###3.基于密度的算法
DBSCAN算法(基于高密度连接片区域)、DENCLUE算法(密度分布函数)、OPTICS算法(对象排队识别)
###4.基于网格的方法
STING算法(统计信息网格)、CLIOUE算法(聚类高维度空间)、WAVE-CLUSTER算法(小波变换)
###5.基于模型的聚类
统计学方法、神经网络、模糊聚类、Kohonen神经网络聚类
##三、聚类分析的度量
###1.外部指标
Rand统计量(Rand S-tatistic)、F值(F-measure)、Jaccard系数(Jaccard Coefficient)、FM(Fowlkes and Mallows Index)
以上四个度量指标越大,表明聚类结果和参考模型直接的划分结果越吻合,聚类结果就越好
###2.内部指标
距离度量
①欧氏距离:计算欧式空间中两点之间的距离。

②曼哈顿距离:也称城市街区距离,欧氏距离表明了空间中两点的直线距离,但在城市中,两个地点之间的实际距离是要沿着道路行驶的距离,而不能计算直接穿过大楼的直线距离。

③切比雪儿距离:向量空间中的一种度量,将空间坐标中两个点的距离定义为其各坐标数值差绝对值的最大值。

内部指标
1)紧密度(CP)
紧密度的值越小,表示簇内样本点的距离越近,即簇内样本的相似度越高。
2)分隔度(DP)
分隔值越大,表示各聚类中心相互距离越远,即簇间相似度越低。
3)戴维森堡丁指数(DBI)
DBI的值越小,表示簇内样本之间的距离越小,同时簇间距离越大,即簇内相似度高,簇间相似度低,说明聚类结果越好。
6)邓恩系数(DVI)
DVI的值越大,表示簇间样本距离越远,簇内样本距离越近,即簇间相似度越低,簇内相似度高,聚类结果越好。
四.算法介绍
1.K-Means算法
计算样本点与类簇质心的距离,与质心相近的样本点划分为同一簇。
(1)k-均值算法算法过程:
1)选择 K 个初始质心(K需要用户指定),初始质心随机选择即可,每一个质心为一个类
2)对剩余的每个样本点,计算它们到各个质心的欧式距离,并将其归入到相互间距离最小的质心所在的簇。计算各个新簇的质心。
3)在所有样本点都划分完毕后,根据划分情况重新计算各个簇的质心所在位置,然后迭代计算各个样本点到各簇质心的距离,对所有样本点重新进行划分
4)重复2. 和 3.,直到质心不在发生变化时或者到达最大迭代次数时
(2)流程图


(1)优缺点
优点:1)原理较为简单,不涉及到较深的数学原理,程序容易实现,收敛是只需要验证质点是否不变,判断方便。2)存储空间小运算时间短。3)对于大数据集仍有较高的效率,可伸缩性好。4)聚类结果簇分离性比较明显。
缺点:1)需要预先设定簇的数量,无法探索性的聚类。2)对簇的形状非常敏感,对球形的簇的聚类效果很差。3)很难识别出离群点。
(2)评估
1)优化目标:找到合适的向量分类ci,使得误差的平方和SSE最小:

X是所有向量,Ci为每个分类Ci的质心

2)轮廓系数:x0的轮廓系数,社x0∈Ci

该值取值范围为[-1,1],越接近1说明分类越合理,越接近-1说明更应该分类到其他簇。对于一个聚类模型,可以采用平均轮廓系数来评估,取最高平均轮廓系数的k值作为类别的数量。
(5)可视化
1)聚类结果可视化图

2)边界划分图:利用等高线高更好的展示

3)计算SSE,表述k的最优数量选取

4)轮廓系数图

2.二分K-均值算法
将所有向量作为一个簇,然后将该簇一分为二。之后选择一个簇继续进行划分,选择哪一个簇进行划分取决于对其划分是否可以最大程度降低SSE的值。二分K-均值相比于K-均值效果更好,克服了K-Means算法收敛于于局部最小值的问题。
缺点:均值对于某些数据不能进行有效的分类1)密度不同的簇2)尺寸不同的簇3)非球形的簇
3.K-medoids算法
通过选取原有样本点作为代表对象代表这个簇,计算剩下的样本点与代表对象的距离,将样本点划分到与其距离最近的代表所在簇中。K-medoids算法的距离计算公式与K-means算法的计算过程类似,只是将距离度量中的中心替换为代表对象。算法克服了K-means对于异常数据导致的聚类结果偏离问题。
优点:当存在噪音和孤立点时,算法比k-means更健壮。
缺点:K-medois算法对于小数据集工作得很好,但不能很好地利用于大数据集,计算质心的步骤时间复杂度为O(n2),运行速度较慢。
4.凝聚层次聚类
按照某种方法进行层次分类,知道满意某种条件位置。
(1)主要分为两类:
1)凝聚:从上到下。首先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,知道所有的对象都在一个簇中,或者某个终结条件被满足。
2)分裂:从上到下。首先将所有对象置于同一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终止条件。
(2)凝聚层次聚类的步骤
•1)将每个对象归为一类, 共得到N类, 每类仅包含一个对象. 类与类之间的距离就是
它们所包含的对象之间的距离.
•2)找到最接近的两个类并合并成一类, 于是总的类数少了一个.
•3)重新计算新的类与所有旧类之间的距离.
重复第2步和第3步, 直到最后合并成一个类为止(此类包含了N个对象).

(3)原理图

单链(single-linkage),簇与簇距离为两簇点之间的最小距离。
•全链(complete-linkage),簇与簇距离为两簇点之间的最大距离。
•均链(average-linkage),簇与簇距离为两簇点之间的平均距离。
•质心链(centroid-linkage),簇与簇距离为两簇质心之间的距离。
误差平方和链(ward-linkage),簇与簇距离为两簇合并之后的误差平方和SSE减去合并之前的SSE。

(4)复杂度
空间复杂度O(m2xn)
时间复杂度O(m3)
优化后(m2logm)
优缺点
•优点:
• 1、距离和规则的相似度容易定义,限制少
•2、不需要预先制定聚类数
•3、可以发现类的层次关系
•缺点:
•1,计算复杂度太高;
•2,奇异值也能产生很大影响;
•3,算法很可能聚类成链状
可视化
链图效果图

1)树状图

5.DBSCAN算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法。 该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合。
•基于密度,对远离密度核心的噪声点鲁棒
•无需知道聚类簇的数量
•可以发现任意形状的聚类簇
•DBSCAN通常适合于对较低维度数据进行聚类分析
1)密度类型
点密度、网格密度、核密度

(1)说明
•基于点密度的点分类,DBSCAN聚类算法的一个关键步骤是,基于点密度对所有样本点进行分类,标记核心点、边界点、噪声点。定义如下给定参数 半径和点数阈值 。
•核心点,某个样本点 半径范围内的样本点数 ,
•边界点,某个样点不是核心点,但在某个核心点的 半径范围内,
•噪声点,非核心点和边界点的其他点
(2)算法流程
•步骤:
•步骤一,根据给定参数 半径和点数阈值 ,扫描全部样本点,标记核心点、边界点、以及噪声点。
•步骤二,将核心点和 半径内的点形成临时聚类簇。
•步骤三,对于每个临时聚类簇检查是否有其他核心点,如果有则将他和该临时簇的核心点之间建立连接。
•步骤四,将每组连通的核心点形成一个簇。
•步骤五,将边界点指派到与之关联的核心点所在的簇里。

(4)优缺点
•优点:
1)相对抗噪声,由于该是算法是基于密度的,所以低密度区会被认为是噪声区,所以对噪声是鲁棒的。
2)可以发现任意形状大小的簇。
3)不用预先制定聚类数。
•缺点:
1)当簇的密度变化太大时,会导致低密度的簇没有被识别出来。
2)对于高维数据,距离和密度的定义对聚类有很大的影响。
(6)可视化
1)基于DBSCAN的分类图

2)调参图
k-距离:
将第k个最近的距离记为k-距离,k越大,距离越大,
当k小于某个簇的点数时,k距离很小,否则很大
•观察:
当k小于簇的点数时,簇内点的k-距离会很小,
噪点的k-距离会很大。

2)排序图
当k取4时,k-距离的排序图,(0.4,600)表示4距离小于0.4的有600个点如右图,会在某个距离时,图像会急剧变化,则选取此eps值

6.EM聚类方法
在已知高斯分布的情况下,希望通过EM聚类算法,来计算两个分布的均值和方差。
算法流程
•步骤一,给定参数初值 ,其中 为先验概率。
•步骤二,(E步)求期望,计算后验概率。令随机变量 为样点 的高斯混合成分,则根据贝叶斯公式得
•步骤三,(M步)最大化似然函数,利用后验概率,更新参数Θ。
•步骤四,将Θ带入步骤二,重复步骤二和步骤三,直到参数Θ不再改变。

(1)可视化
聚类结果图

7.SOM聚类算法

SOM聚类算法是基于神经网络观点的聚类方法和数据可视化技术,也可以看作基于原型的一种聚类方法。
聚类之初需要确定的是,所需要聚类的样本空间的数据点x1,x2,…xm∈V和空间距离为d,聚类的数目为K以及类的网络距离dnet,例如Vnet是矩形结构,则k等于矩形的行数乘以列数,网格距离可以是欧氏距离dnet=。
(1)算法流程
步骤一,初始化质心网格,并赋予每个质心在样本空间中的初值位置。设质心此外设质心对应的样本空间的初值位置 。
步骤二,利用空间距离,找到每个数据点在样本空间上对应的最近质心。设样本空间 的空间距离为 ,对于某个数据点 则它对应的最近质心是
步骤三,利用每个数据点的位置和最近质心,更新质心的空间位置,其更新依赖于学习速度和以下公式。为学习速度,随时间 单调减小
步骤四,反复进行步骤二,步骤三,直到质心不改变或改变很小。

(2)可视化
聚类结果图和聚类数目图

8.Mean Shift 算法

     Mean Shift 算法是基于质心的一种爬山算法,来找到数据点的密集区域。该算法在质心周围建立滑动窗口,再通过滑动窗口内点的均值将质心更新为来完成,来定位每个组/类的中心点。然后对这些候选窗口进行相似窗口进行去除,最终形成中心点集及相应的分组。算法流程

•步骤一:初始化,指定圆的半径,半径的大小会决定质心的迭代过程,半径太小会出现更多的小簇;以及指定所有质心,当数据量小时,可以让所有数据点作为质心,当数据量大时,选择网格状质心,质心和圆务必将所有数据点覆盖。
•步骤二:迭代更新质心,分别提取每个质心圆内的数据点,并根据迭代公式(一般是计算均值),计算并更新质心。
•步骤三:重复步骤二直至所有质心不再变化,或达到提前制定的迭代次数上限。
•步骤四:删除重复质心,计算每个质心的强度(一般为质心院内数据点的个数),若在圆内包含其他质心,则保留强度高的质心,删除强度低的质心。
•步骤五:得出聚类结果,对于每个数据点,向最近的质心进行归类。

(2)优缺点
Mean Shift聚类算法的优点有:
1)运算速度快,具有很好的实时计算性。
2)不需要提前设定聚类数,可识别出不同密度的簇。
3)利用颜色直方图,该算法可以用于对视频的实时跟踪,并具有很好的果。
•Mean Shift聚类算法的缺点有:
1)聚类结果对半径参数非常敏感,需要利用簇的相关评估进行后期调参。
2)当数据量大时,一般需要根据半径指定网状的初始质心。
3)当临近的簇的大小差别较大时,较大的簇可能会被分割,其原因是最终是依据离质心的远近进行归类的
(3)可视化
算法流程展现

9.社区检测聚类算法
社区,社区是复杂网络中的节点的聚集,它的成员内部之间比不同社区节点之间有着更好的连接性。当复杂网络利用图来表示时,即对图的顶点进行分组,使得组内顶点之间边的连接密度(或权重)比不同组顶点之间更高。•完成这个任务需要两个基本步骤:一,设定一个度量,来衡量组内比组外具有的更好的连接性;二,利用优化算法技术,来优化这个度量。
(1)算法流程
步骤一:初始化,将所有点分别单独作为临时的组。
步骤二:用枚举的方法,尝试合并其中两个组,并计算模块度的改变值。
步骤三:取步骤二中,模块度增长最大的一种情况,进行合并。
步骤四:重复步骤二和步骤三,直至仅剩一个组,并记录迭代过程的所有模块度。
步骤五:选择迭代过程中的最高的模块度,以及所对应分组情况,作为聚类结果。

(1)优缺点
•社区检测聚类算法的优点有:
1)可以解决社交网络的分组问题,以及一般数据点的聚类问题;
2)采用不同的相似性和模块度定义,再选择不同的优化算法,可以应用于多种的
聚类观点,也可以自主选择聚成什么样的社区。
3)社区检测有着大量的应用场景,被广泛的应用,也是研究的热点。
•社区检测聚类算法的缺点有:
1)聚类算法的运算速度依赖于所采用的优化算法,很多算法只适合中小量的数据
聚类。
2)算法依赖于模块度这一目标函数的定义,不同的社区结构需要选择不同的目标
函数,对操作者的专业知识要求很高。
(2)可视化

五.优秀论文中的应用
2017-B 基于聚类分析的双目标优化定价模型
问题一:基于离散化与 K-Means 分析的定价规律影响模型

问题三:我们对聚类分析的分类数进行大致估算,由于任务总数为 845 个,将 任务按照位置信息分为 150 类时,平均每一类大约有 5—6 个任务,这个数值比 较合理.因此,初次聚类时,将任务的位置分布分为 150 类,利用 Matlab 的 K-Means 命令得到的聚类分析图:

二次聚类:

数学建模学习——聚类(包含优秀建模论文中的应用)相关推荐

  1. 「建模学习」听说3D建模很难,原来不是学不会,而是缺少这个

    朋友问目前什么行业最赚钱? 说当然是游戏行业啦,这是毋庸置疑的! 随着现在游戏行业的迅速发展 许多小伙伴都想进入游戏行业(当然不是去打游戏消费啦) 但美术基础比较差的小伙伴 应该从哪开始呢? 嘿嘿,其 ...

  2. 数学建模上分利器,小论文中稿神器,赶快学习近15年来较新颖的智能优化算法!

    前言 关于MATLAB系列的精品专栏大家可参见 MATLAB-30天带你从入门到精通 MATLAB深入理解高级教程(附源码) 喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! 相信各位无论是写 ...

  3. latex学习篇【一】论文中的图片技巧QA

    第一篇论文总算收尾了,整理一波latex写论文的Q&A. LATEX专栏第一篇:在Latex模板中引入各种图片的问题. 工具:overleaf 网站:https://www.overleaf. ...

  4. MBSE建模学习之七:用例和用例图的说明

    用例图概述 用例图通过描述用户使用系统提供的某种服务实现一个目标的方式来说明系统的需求.用例图中的元素包括:"用例(UseCase)",它表示系统提供的功能或能力:"执行 ...

  5. 【githubboy】数学建模学习资源,包含数学建模相关的算法、LaTeX 论文模板、算法思维导图

    在 GitHub 开源了数学建模学习资源,主要包含数学建模相关的竞赛优秀论文.算法.LaTeX 论文模板.算法思维导图.书籍.Matlab 教程等内容. GitHub:github.com/zhanw ...

  6. 数学建模系列:历年优秀论文+入门+进阶+国赛+美赛+其他

    数模系列:历年优秀论文+入门+进阶+国赛+美赛+其他(待更新中) 数模成绩为国二\省一\o奖\H奖,在博客做一个总结.先放国赛美赛的历年优秀论文,资料来源微信公众号数学模型.(目前完成部分:入门+进阶 ...

  7. 数学建模学习交流论文写作课件

    数学建模学习交流论文写作课件 参考资料:数学建模清风:论文写作方法课程 https://www.bilibili.com/video/BV1Na411w7c2

  8. 数学建模学习笔记(九)——聚类模型

    文章目录 一.聚类综述 二.主要用到的聚类算法 三.K-means聚类算法 四.K-means++算法 五.对于K-means算法和K-means算法的讨论 六.系统(层次)聚类算法 七.DBSCAN ...

  9. 数学建模学习1.22——多元回归分析

    清风老师课程 目录 一.回归分析简介 二.数据分类与数据处理方法 三.线性回归 四.回归系数的解释与模型分类 ​五.回归实例 六.错误论文分析 七.清风老师的毕业论文讲解 八.异方差,多重共线性和逐步 ...

最新文章

  1. VS2010 LNK1123:转换到 COFF期间失败:文件无效或损坏”的解决方法
  2. 对oracle静态参数修改一点研究
  3. 低效能人士的七个习惯
  4. 关于构造与析构过程中调用虚函数的问题
  5. Windows 10 版本信息
  6. java 里面write,java 中 System.out.println()和System.out.write()的区别
  7. C语言获取某个分割符之前的内容
  8. 第一个冲刺周期(第四天)
  9. 联想电脑锁屏界面设置被组织隐藏_Word Clock数字时钟动态屏保,让你的电脑锁屏瞬间科技感十足!...
  10. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_11使用骨架创建maven的java工程...
  11. 4x4矩阵键盘扫描c语言程序,技巧:C语言超经典矩阵键盘连接,流程图和扫描程序...
  12. HBase数据库结构、存储理解(举例解释、容易理解、深入浅出)
  13. 【毕业论文】分享当年使用过的一些好用网站,包括论文去重,翻译,作图神器,免费文献查找 | 第 1 期
  14. Intel SGX入门
  15. 公众号如何涨粉?会其中一种都可以让你爆粉
  16. QQ音乐爬虫之放弃的路
  17. 15_Elasticsearch 内部原理详细解析(下篇)
  18. 解决office的PPT和WPS的PPT不兼容的问题
  19. 计算机网络及应用【2】
  20. mysql 42000 报错_MySQL SQL Error: 1064, SQLState: 42000 错误

热门文章

  1. 「有趣」基因组上除了ATCGN还能有什么字符
  2. 用Python爬取王者农药英雄皮肤 原
  3. _stdcall _cdec区别
  4. 【华为OJ】【099-MP3光标位置】
  5. C#_Ublox指令参照
  6. vue项目该不该使用eslint验证?
  7. 破坏生产力的5种方法
  8. Linux ❉ sudo 命令
  9. 最全的informix资料下载
  10. 2022年舞台造雪机市场前景分析及研究报告