MATLAB聚类分析学习笔记

聚类分析的基本概念

基本思想

聚类分析的基本思想:是根据一批样品的多个观测指标,具体地找出一些能够度量样品或指标之间相似程度的统计量,然后利用统计量将样品或指标进行归类。把相似的样品或指标归为一类,把不相似的归为其他类。直到把所有的样品(或指标)聚合完毕. 相似样本或指标的集合称为类。

研究主要内容

如何度量事物之间的相似性 ?

怎样构造聚类的具体方法以达到分类的目的?

样本间距离的概念

每个样本有p个指标,因此每个样本可以看成p维空间中的一个点,n个样本就组成p维空间中的n个点,这时很自然想到用距离来度量n个样本间的相似程度。

样本X i _{i} i和样本X j _{j} j间的距离有多种定义方式,这里给出常用的几种。

明考夫斯基距离

明考夫斯基距离又叫明氏距离,其公式为:

在这里插入图片描述
当q的取值不同时又可以分成以下几种常用的距离:
在这里插入图片描述
以上几种距离主要有以下两个缺点:

1.距离的值与各指标的量纲有关,具有一定的人为性。任何一个变量计量单位的改变都会使距离的值改变。

2.距离的定义没有考虑各个变量之间的相关性和重要性。以上距离是把各个变量都同等看待,将两个样品在各个变量上的离差简单地进行了综合。

马氏距离

在这里插入图片描述
马氏距离又称为广义欧氏距离。

马氏距离考虑了观测变量之间的相关性。如果假定各变量之间相互独立,即观测变量的协方差矩阵是对角矩阵,此时马氏距离就是标准化的欧氏距离。

马氏距离不受指标量纲及指标间相关性的影响

聚类方法

系统聚类法

基本思想

先将n个样品各自看成一类,然后规定样品之间的“距离”和类与类之间的距

离。选择距离最近的两类合并成一个新类,计算新类和其它类(各当前类)的距离,再

将距离最近的两类合并。这样,每次合并减少一类,直至所有的样品都归成一类为止

基本步骤

系统聚类法的基本步骤:

  1. 计算n个样品两两间的距离 d i j _{ij} ij ,记作D= {d i j _{ij} ij } 。
  2. 构造n个类,每个类只包含一个样品。
  3. 合并距离最近的两类为一新类。
  4. 计算新类与各当前类的距离。
  5. 重复步骤3、4,合并距离最近的两类为新类,直到所有的类并为一类为止。
  6. 画聚类谱系图。
  7. 决定类的个数和类

MATLAB实现

pdist函数用来计算样本间的距离
其基本形式为:
在这里插入图片描述
其中Distance表示距离的类型,如’chebchev’,‘minkowshi’

其返回为具有X所有元素个数的排列数的一个向量,比如输入10个元素,C 10 2 _{10}^{2} 102,即为45个元素的向量。
该函数通常与squareform(D)函数搭配使用。squareform函数可以将pdist(X)函数返回的向量转化为邻接矩阵。如下例所示:
在这里插入图片描述
得到邻接矩阵后用LInkage函数创建系统聚类树,并用Dendrogram来做出聚类的树形图。
这两个函数的用法这里就不累述了。
接下来给出一个简单的例子:

a=rand(30,2);
x=pdist(a);
y=linkage(x);
dendrogram(y)

在这里插入图片描述

动态聚类

基本思想

选取若干个样品作为凝聚点,计算每个样品和凝聚点的距离,进行初始分类,然后根据初始分类计算其重心,再进行第二次分类,一直到所有样品不再调整为止。
动态聚类
优点:计算量小,方法简便,可以根据经验,先作主观分类。
缺点:结果受选择凝聚点好坏的影响,分类结果不稳定

基本步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MATLAB实现

一般采用MATLAB中的kmeans函数来实现动态聚类
在这里插入图片描述
其中,X为n ∗ * p的矩阵,k为分类个数,输出函数IDX为
N*1的向量,其元素为每个点所属类的类序号。C为k ∗ * p的矩阵,为第i行元素的 第j类的中心坐标。

subplot(2,2,1)
plot(a(:,1),a(:,2),'*');
subplot(2,2,2)
t1=a(find(c==1),:);
t2=a(find(c==2),:);
t3=a(find(c==3),:);
plot([t1(:,1)],[t1(:,2)],'*','color','red')
hold on
plot([t2(:,1)],[t2(:,2)],'*','color','green')
hold on
plot([t3(:,1)],[t3(:,2)],'*','color','blue')
hold on 
plot(d(:,1),d(:,2),'+','MarkerSize',10)

在这里插入图片描述
如图所示,我们随机生成的点通过动态聚类的方法被分为了3类,用3种不同的颜色表示了出来。其中加号+,表示聚类的中心位置。

小结

本文总结了聚类分析的常见方法,并给出了运用MATLAB进行聚类分析的实例。

参考文献来源于网络和校内资料,若有侵权,告知则删。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值