模糊数学学习笔记 5:模糊聚类

个人博客地址 Glooow,欢迎光临~~~


现在想要对 n n n 个目标 U = { x 1 , . . . , x n } U=\{x_1,...,x_n\} U={x1,...,xn} 分类,并且每个对象都有多个指标,也即 x i = { x i 1 , . . . , x i m } x_i=\{x_{i1},...,x_{im}\} xi={xi1,...,xim}

模糊聚类通常包括三个步骤:

  1. 建立模糊矩阵
  2. 建立模糊等价矩阵
  3. 进行聚类

1. 数据标准化

实际中各个指标的量纲与数量级很可能相差很大,比如高校评价指标中,可能包括科研经费、论文数量、获奖数量等,数量级差别很大,这个时候就需要先对各项数据进行标准化。常用方法有

标准差标准化
x i j ′ = x i j − x ˉ j σ j x_{ij}'=\frac{x_{ij}-\bar{x}_j}{\sigma_j} xij=σjxijxˉj
极差正规化
x i j ′ ′ = x i j ′ − min ⁡ 1 ≤ i ≤ n { x i j ′ } max ⁡ 1 { x i j ′ } − min ⁡ 1 : i ⩽ n { x i j ′ } \boldsymbol{x}_{i j}^{\prime \prime}=\frac{\boldsymbol{x}_{i j}^{\prime}-\min _{1 \leq i \leq n}\left\{\boldsymbol{x}_{i j}^{\prime}\right\}}{\max _{1}\left\{\boldsymbol{x}_{i j}^{\prime}\right\}-\min _{1: i \leqslant n}\left\{\boldsymbol{x}_{i j}^{\prime}\right\}} xij=max1{xij}min1:in{xij}xijmin1in{xij}
极差标准化
x i j ′ = x i j − x ˉ i max ⁡ { x i j } − min ⁡ { x i j } x_{i j}^{\prime}=\frac{x_{i j}-\bar{x}_{i}}{\max \left\{x_{i j}\right\}-\min \left\{x_{i j}\right\}} xij=max{xij}min{xij}xijxˉi
最大值规格化
x i j ′ = x i j max ⁡ ( x 1 j , x 2 j , . . . , x n j ) x_{ij}'=\frac{x_{ij}}{\max{(x_{1j},x_{2j},...,x_{nj})}} xij=max(x1j,x2j,...,xnj)xij

2. 建立模糊相似矩阵

接下来需要确定不同对象之间的相似度,相似度的确定也有几种常用度量:

1.1 相关系数类

在这里插入图片描述

1.2 距离类

在这里插入图片描述

1.3 贴近度类

在这里插入图片描述

3. 聚类

获得模糊相似矩阵以后,需要首先求出传递闭包 t ( R ) t(R) t(R),以获得模糊等价矩阵,然后根据不同的阈值 λ \lambda λ 进行聚类,然后再画出动态聚类图。

举个栗子

在这里插入图片描述

求解过程如下

0. 特性指标矩阵1. 数据标准化2. 求模糊相似矩阵
在这里插入图片描述在这里插入图片描述在这里插入图片描述
3. 求传递闭包4. 根据不同阈值聚类5. 画动态聚类图
在这里插入图片描述在这里插入图片描述在这里插入图片描述

4. 其他问题

在实际应用过程中,还会出现一些其他问题,比如:

  • 在实际应用中,如何选择适当的 λ \lambda λ?从而给出一个较明确的聚类。

实际中最佳阈值的确定,可以由专家给出值;也可以应用 F-统计量确定最佳阈值。

  • 如果不用传递闭包,直接对相似矩阵进行聚类会怎么样?

直接应用模糊相似矩阵进行聚类时,可以首先确定一个阈值 λ \lambda λ,然后根据截集获得一系列聚类结果,由于模糊相似矩阵并不是等价矩阵,因此此时的聚类结果是不严谨的,后面需要对交集非空的集合进行合并(这里可能表述的不清楚,看下面的例子就明白了)

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

  • 当样本点很多时(几百万甚至上千万个像素),例如需 要对一张图片上的样本点进行聚类,该怎么办?

可以应用模糊C均值法(FCM)

5. 模糊C均值法(FCM)

x i ( i = 1 , 2 , . . . , n ) x_i(i=1,2,...,n) xi(i=1,2,...,n) 是n个样本组成的样本集合, c c c 为预定的类别数目, u i j u_{ij} uij 是第 i i i 个样本对于第 j j j 类的隶属度函数。用隶属度函数定义的聚类损失函数可以写为
∑ j = 1 c ∑ i = 1 n u i j m d i j 2 = ∑ j = 1 c ∑ i = 1 n u i j m ∥ p j − x i ∥ 2 \sum_{j=1}^{c} \sum_{i=1}^{n} u_{i j}^{m} d_{i j}^{2}=\sum_{j=1}^{c} \sum_{i=1}^{n} u_{i j}^{m}\left\|\mathbf{p}_{j}-\mathbf{x}_{i}\right\|^{2} j=1ci=1nuijmdij2=j=1ci=1nuijmpjxi2
其中 m > 1 m>1 m>1 P j P_j Pj 是第 j j j 类的聚类中心,后面会给出公式。通常也会假设 ∑ j u i j = 1 \sum_j u_{ij}=1 juij=1

下面则给出该算法的推导:为了最小化损失函数,则可以应用 Lagrange 乘子法
J = ∑ i = 1 n ∑ j = 1 c u i j m d i j 2 − ∑ i = 1 n λ i ( ( ∑ j = 1 c u i j ) − 1 ) J=\sum_{i=1}^{n} \sum_{j=1}^{c} u_{i j}^{m} d_{i j}^{2}-\sum_{i=1}^{n} \lambda_{i}\left(\left(\sum_{j=1}^{c} u_{i j}\right)-1\right) J=i=1nj=1cuijmdij2i=1nλi((j=1cuij)1)
λ i , u i j \lambda_i,u_{ij} λi,uij 求偏导等于 0,则可以得到迭代公式为
u i j = ( 1 d i j ) 2 / ( m − 1 ) ∑ k = 1 c ( 1 d i k ) 2 / ( m − 1 ) p j = ∑ i = 1 n u i j m x i ∑ i = 1 n u i j m u_{i j}=\frac{\left(\frac{1}{d_{i j}}\right)^{2 /(m-1)}}{\sum_{k=1}^{c}\left(\frac{1}{d_{i k}}\right)^{2 /(m-1)}} \\\mathbf{p}_{j}=\frac{\sum_{i=1}^{n} u_{i j}^{m} \mathbf{x}_{i}}{\sum_{i=1}^{n} u_{i j}^{m}} uij=k=1c(dik1)2/(m1)(dij1)2/(m1)pj=i=1nuijmi=1nuijmxi
由此就可以给出 FCM 算法的框架

在这里插入图片描述

  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值