本文是对聚类分析较为简单的介绍,笔者自从大二开始接触数学建模,就使用过Q型聚类和R型聚类,但是一直到研一结束,都没有一个具体的认识,浅尝辄止,不敢言通。最近参加研究生数学建模比赛,又用到了R型聚类方法,才算是有了一丝了解。作为非计算机专业的学生,深感各种算法浩如烟海,想要全部掌握,非人力所能及。最近初入博士生涯,也渐觉面面俱到很难实现,术业有专攻比较现实。本文整理聚类分析方法的皮毛,作为一个小小的总结,以待后续的学习。

本文基本内容来源于司守奎《数学建模算法与应用》(第2版)和matlab官方网页,在其基础上进行个人的理解和改进。

聚类分析介绍 Cluster analysis

聚类分析是一种无监督的分类方法,即不预先指定类别。根据分类对象不同,聚类分析可以分为样本聚类(Q型)和变量聚类(R型)。样本聚类是针对观测样本进行分类,而变量聚类则是试图找出彼此独立且有代表性的自变量,而又不丢失大部分信息,变量聚类是一种降维的方法。

聚类分析方法在大数据的挖掘处理过程中起着重要的作用。目前主流的聚类分析方法有系统聚类法,快速聚类法,两步聚类法。这些聚类方法的特点和适用范围如下(不算全面):
(1)系统聚类法(分层聚类法)
基本思想:开始将每个样本自成一类;然后求两两之间的距离,将距离最近的两类合成一类;如此重复,直到所有样本都合为一类为止。
适用范围:既适用于样本聚类,也适用于变量聚类。并且距离分类准则和距离计算方法都有多种,可以依据具体情形选择。
(2)快速聚类法(K-均值聚类法)
基本思想:按照指定分类数目,选择个初始聚类中心;计算每个观测量(样本)到各个聚类中心的距离,按照就近原则将其分别分到放入各类中;重新计算聚类中心,继续以上步骤;满足停止条件时(如最大迭代次数等)则停止。
使用范围:要求用户给定分类数目,只适用于样本聚类(Q型),不适用于变量聚类(R型)。
(3)两步聚类法(智能聚类方法)
基本思想:先进行预聚类,然后再进行正式聚类。
适用范围:属于智能聚类方法,用于解决海量数据或者具有复杂类别结构的聚类分析问题。可以同时处理离散和连续变量,自动选择聚类数,可以处理超大样本量的数据。

聚类方法的选择 Choose Cluster Analysis Method

根据MATLAB官网的介绍Choose Cluster Analysis Method,目前其统计和机器学习工具箱提供了以下聚类方法:

  • Hierarchical Clustering 层次聚类
  • k-Means and k-Medoids Clustering k均值和k中位数聚类
  • Density-Based Spatial Clustering of Applications with Noise (DBSCAN) 基于密度的聚类算法
  • Gaussian Mixture Model 高斯混合模型
  • k-Nearest Neighbor Search and Radius Search 最近邻检索
  • Spectral Clustering 谱聚类

这些方法具有各自的特点,该网页对其进行了对比,对比的内容包括:

  • Basis of Algorithm 算法基础
  • Input to Algorithm 输入算法
  • Requires Specified Number of Clusters 需要指定数量的集群
  • Cluster Shapes Identified 识别出的团簇形状
  • Useful for Outlier Detection 对异常值检测有用

上面的内容还是很有用的,我觉得很有价值,不过不想看了。

简单聚类的实现

官网也给出了以上聚类分析方法的应用实例,比如Cluster Analysis就是k均值聚类和层次聚类的示例。该示例使用聚类分析来检查观测值或对象的相似性和相异性。数据通常可以自然划分到观测值组或簇中,同一簇中对象的特性是相似的,不同簇中对象的特性是相异的。

不过我已经不想看了,今年2月份,因为疫情的原因在家学习,闲来无事萌生了撰写博客的想法,至今也写了一些,算是个人学习的简单总结。在整个过程中也收获了很多,也帮助到了一些同样在学习的同道中人。

傻瓜攻略系列一开始就是想把自己掌握的一些方法整理下来,以备不时之需,但是慢慢地,我就开始计划着,要把MATLAB机器学习和深度学习工具箱的方法都学会,我也的确这样做了,代价是七月份到现在的遍地开花没有结果。之前看过一篇文章,说读博士千万不要想着什么都会,爱因斯坦也说过,学的越多越认识到自己的无知。我现在有些认识到自己的狂妄和无知了。

韩愈说:“闻道有先后,术业有专攻。”此言不虚,有人本科就发论文,有人早早就掌握了一门技术。我现在需要做的,并不是掌握多少种看似高级实则无用的方法,而是通过实际的科研活动,在不断的尝试和失败中学习如何做科研,学习如何成为一名合格的博士研究生。所以这篇博客不是傻瓜攻略的结束,而是我遍地开花阶段的结束。下一步,我的博客写作不会停,但是希望我是因为学习到了一项技能而写博客,而不是为了写博客去学习什么。

聚类结果的展示

下面这个网页里的可视化程序看上去颇有几分高大上的感觉,推荐一波。哪位看官学会了记得分享给大家,哈哈
可视化多变量数据

笔者的其他博客,欢迎大家阅读学习,共同进步
傻瓜攻略(一)——MATLAB主成分分析代码及结果分析实例

MATLAB中plotconfusion函数的应用

傻瓜攻略(二)——MATLAB数据挖掘之Apriori算法实现

win10系统中通过conda命令安装tensorflow(cpu版本,不用pip)

傻瓜攻略(十五)——MATLAB中简单的聚类分析方法相关推荐

  1. 支付宝2023集齐五福攻略技巧 五福卡全获取途径方法

    支付宝2023集五福活动今日开启啦,就在1月10日开始咯,通过集五福的形式来获取终极奖励吧,即可瓜分专属红包哦,详细的集五福卡活动及五福卡获取方法现在来告诉给大家吧~ 支付宝2023五福卡全获取攻略 ...

  2. 【硬核游戏攻略】2.matlab中调用Java实现《大家来找茬》快速求解器

    大家来找茬是个原理比较简单的游戏,通过比较并标记两幅图片中的不同(指的是相同相对位置上的不同 图片绝对位置通常一张在左一张在右–别笑)来过关. 求解起来比较简单,只需要对应位置RGB值相减(如果是负数 ...

  3. 傻瓜攻略(十六)——MATLAB实现txt文件复杂内容的读取

    理想情况下,txt文件中的内容是很规则的,如下图,这样的文件导入是很简单的,参见傻瓜攻略(十一)--MATLAB实现指定文件夹中txt文件的批量读取 然而现实却是,我们想要导入的txt文件中往往含有比 ...

  4. 傻瓜攻略(十二)——MATLAB实现偏最小二乘回归PLS

    这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...

  5. 傻瓜攻略(八)——MATLAB实现模糊综合评判(两种运算方法)

    模糊综合评判法 模糊综合评价法是一种基于模糊数学(fuzzy mathematics)的综合评价方法.该综合评价法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物 ...

  6. 傻瓜攻略(六)——MATLAB实现RBF神经网络

    径向基函数(Radial Basis Function,RBF)神经网络是一种传统的神经网络,于1988年首次被提出.1989年,Jackson论证了RBF神经网络对非线性连续函数的一致逼近性能. R ...

  7. SPM12 核磁数据预处理 傻瓜攻略

    写在最前:鉴于我自己脑子傻,请不要迷信这篇文章的方法的正确性,数据分析的方法真的很多,基于数据的差异可能在一些地方的设置或数据处理步骤都会有差异!也希望发现这篇文章哪里有错误或可以改进的大神可以评论指 ...

  8. 海淘iherb购物最新傻瓜攻略

    海淘iherb购物最新傻瓜攻略 这篇文档将介绍一个新人如何从美国iherb网站海淘母婴类奶粉,米粉等,保健品类蜂蜜,蜂胶等,及化妆品类,食品杂货类等等, 通过这篇文章的介绍, 我们可以不用出门就像从淘 ...

  9. 半自动化批量下载专利全文pdf傻瓜攻略

    半自动化批量下载专利全文pdf傻瓜攻略 写在前面 适合人群 使用前提 基本思路 键鼠记录器脚本 前期准备 脚本原理 注意事项 检查下载效果 写在前面 整理专利的时候,在专利引擎上只能一条条的下载,很是 ...

最新文章

  1. java获取jndi密码_用JAVA代码获取Weblogic配置的JNDI 数据源连接
  2. R语言ggplot2可视化:使用堆叠的条形图(Stacked Barplot)可视化每个数据行(row)的缺失值的情况(Visualizing missing data counts in rows)
  3. 机器学习(part2)--线性方程组的列表达
  4. 字符串与整数、浮点数、无符号整数之间的转换常用函数
  5. 如何和在桌面上添加计算机,怎么在电脑桌面上添加便签?
  6. mysql定制化_【MySQL技巧】定制你的MySQL命令行
  7. Java编程:排序算法——希尔排序
  8. VB2010(18)_各种对话框的使用
  9. volatility内存取证
  10. 最强下载神器IDM的安装和使用
  11. 啊D注入工具是一种主要用于SQL的注入工具
  12. php 汉王云名片_汉王云名片识别(SM)组件开发详解
  13. Raspberry Pi 4和 Raspberry Pi 4B的区别_8GB内存的树莓派4来啦!国内售价589元,官方还推出配套64位系统...
  14. 哥白尼计划(Copernicus initiative)
  15. 裴波那契数列python
  16. 《 JavaScript程序设计》—— 第五章 函数
  17. java并行流 阻塞主线程_记一次使用Java8并行流导致的服务瓶颈问题排查
  18. 35 岁的程序员将何去何从——阮一峰
  19. 国家公务员面试主要采取的是结构化的面试形式
  20. Android 仿拼多多可水平滚动RecyclerView,自定义滚动条滚动距离

热门文章

  1. iOS接入开屏广告教程 : 以腾讯优量汇为案例(适配iOS15)
  2. 从零开始学Unity游戏开发
  3. 深度学习 音乐分类_基于神经网络的音乐流派分类
  4. GPON与EPON之比较(无源光网络技术)
  5. java file transferto_jvm源码分析之FileChannel.transferTo()方法
  6. android 在窗口中启动应用程序,Android中使用am命令实现在命令行启动程序详解
  7. ps3本地虚拟服务器,手把手教你用PC笔记本畅玩PS3主机游戏图文教程
  8. Matlab车牌识别停车场车辆进出管理系统
  9. 学计算机二级的感想,学习计算机二级的心得体会.docx
  10. C'EST UN TEST de français