模糊数学笔记:五、模糊聚类

模糊聚类分析是模糊数学中应用最为广泛的方法之一。近年来也涌现出了多种不同的模糊聚类方法,本文直接从其操作流程出发,介绍模糊聚类分析的主要内容。

1、一般流程
数据预处理
相似关系建立
聚类分析
2、数据预处理方法

这一过程通常是将数据压缩到区间 [ 0 , 1 ] [0,1] [0,1]上以便于建立模糊矩阵。常用方法如下:

  • 平移-标准差变换

x i k ′ = x i k − x k ‾ s k ( i = 1 , … , n ; k = 1 , … , m ) x_{i k}^{\prime}=\frac{x_{i k}-\overline{x_{k}}}{s_{k}}(i=1, \ldots, n ; k=1, \ldots, m) xik=skxikxk(i=1,,n;k=1,,m)

其中, x k ‾ = 1 n ∑ i = 1 n x i k , s k = 1 n ∑ i = 1 n ( x i k − x k ) 2 \overline{x_{k}}=\frac{1}{n} \sum_{i=1}^{n} x_{i k}, s_{k}=\sqrt{\frac{1}{n} \sum_{i=1}^{n}\left(x_{i k}-x_{k}\right)^{2}} xk=n1i=1nxik,sk=n1i=1n(xikxk)2

  • 平移-极差变换

x ′ ′ = x i k ′ − min ⁡ 1 ≤ i ≤ n { x i k ′ } max ⁡ 1 ≤ i ≤ n { x i k ′ } − min ⁡ 1 ≤ i ≤ n { x i k ′ } ( k = 1 , … , m ) x^{\prime \prime}=\frac{x_{i k}^{\prime}-\min _{1 \leq i \leq n}\left\{x_{i k}^{\prime}\right\}}{\max _{1 \leq i \leq n}\left\{x_{i k}^{\prime}\right\}-\min _{1 \leq i \leq n}\left\{x_{i k}^{\prime}\right\}}(k=1, \ldots, m) x=max1in{xik}min1in{xik}xikmin1in{xik}(k=1,,m)

3、相似关系的建立方法

相似关系建立主要分为:相似系数法、距离法和主观评分法,其中前2者使用最多。

第一类:相似系数法

  • 数量积法

r i j = { 1 i = j 1 M ∑ k = 1 m x i k x j k i ≠ j r_{i j}=\left\{\begin{matrix} 1 & i=j \\ \frac{1}{M} \sum_{k=1}^{m} x_{i k} x_{j k} & i \neq j \end{matrix} \right. rij={1M1k=1mxikxjki=ji=j

其中 M = max ⁡ i ≠ j ∑ k = 1 m x i k x j k M=\max _{i \neq j} \sum_{k=1}^{m} x_{i k} x_{j k} M=maxi=jk=1mxikxjk, 此时 r i j ∈ [ − 1 , 1 ] r_{i j} \in[-1,1] rij[1,1]

若存在 r i j < 0 r_{i j}<0 rij<0 令所有 r i j ′ = ( 1 + r i j ) / 2 r_{i j}^{\prime}=\left(1+r_{i j}\right) / 2 rij=(1+rij)/2 使得 r i j ′ ∈ [ 0 , 1 ] r_{i j}^{\prime} \in[0,1] rij[0,1]

  • 夹角余弦法: r i j = ∑ k = 1 m x i k x j k ∑ k = 1 m x i k 2 ∑ k = 1 m x 2 j k \quad r_{i j}=\frac{\sum_{k=1}^{m} x_{i k} x_{j k}}{\sqrt{\sum_{k=1}^{m} x_{i k}^{2}} \sqrt{\sum_{k=1}^{m} x^{2}}_{j k}} rij=k=1mxik2 k=1mx2 jkk=1mxikxjk

  • 相关系数法:

    r i j = ∑ k = 1 m ∣ x i k − x ˉ i ∥ x j k − x ˉ j ∣ ∑ k = 1 m ( x i k − x ˉ i ) 2 ∑ k = 1 m ( x j k − x ˉ j ) 2 r_{i j}=\frac{\sum_{k=1}^{m}\left|x_{i k}-\bar{x}_{i} \| x_{j k}-\bar{x}_{j}\right|}{\sqrt{\sum_{k=1}^{m}\left(x_{i k}-\bar{x}_{i}\right)^{2}} \sqrt{\sum_{k=1}^{m}\left(x_{j k}-\bar{x}_{j}\right)^{2}}} rij=k=1m(xikxˉi)2 k=1m(xjkxˉj)2 k=1mxikxˉixjkxˉj

    其中 x ˉ i = 1 m ∑ k = 1 m x i k , x ˉ j = 1 m ∑ k = 1 m x j k , i , j = 1 , 2 , … \bar{x}_{i}=\frac{1}{m} \sum_{k=1}^{m} x_{i k}, \quad \bar{x}_{j}=\frac{1}{m} \sum_{k=1}^{m} x_{j k}, i, j=1,2, \dots xˉi=m1k=1mxik,xˉj=m1k=1mxjk,i,j=1,2,

  • 指数相似系数法

r i = 1 m ∑ k = 1 m exp ⁡ { − 3 4 ( x i k − x j k ) 2 s k 2 } , i , j = 1 , 2 , … , n . s k = 1 n ∑ k = 1 n ( x i k − x k ‾ ) 2 , x k ‾ = 1 n ∑ k = 1 n x i k ( k = 1 , … m ) \begin{array}{l} r_{i}=\frac{1}{m} \sum_{k=1}^{m} \exp \left\{-\frac{3}{4} \frac{\left(x_{i k}-x_{j k}\right)^{2}}{s_{k}^{2}}\right\}, i, j=1,2, \dots, n. \\ s_{k}=\sqrt{\frac{1}{n} \sum_{k=1}^{n}\left(x_{i k}-\overline{x_{k}}\right)^{2}}, \overline{x_{k}}=\frac{1}{n} \sum_{k=1}^{n} x_{i k}(k=1, \ldots m) \end{array} ri=m1k=1mexp{43sk2(xikxjk)2},i,j=1,2,n.sk=n1k=1n(xikxk)2 ,xk=n1k=1nxik(k=1,m)

  • 最大最小法

r i j = ∑ k = 1 m ( x i k ∧ x j k ) ∑ k = 1 m ( x i k ∨ x j k ) r_{i j}=\frac{\sum_{k=1}^{m}\left(x_{i k} \wedge x_{j k}\right)}{\sum_{k=1}^{m}\left(x_{i k} \vee x_{j k}\right)} rij=k=1m(xikxjk)k=1m(xikxjk)

  • 算术平均最小法

r i j = 2 ∑ k = 1 m ( x i k ∧ x j k ) ∑ k = 1 m ( x i k + x j k ) r_{i j}=\frac{2 \sum_{k=1}^{m}\left(x_{i k} \wedge x_{j k}\right)}{\sum_{k=1}^{m}\left(x_{i k}+x_{j k}\right)} rij=k=1m(xik+xjk)2k=1m(xikxjk)

  • 几何平均最小法

r i j = ∑ k = 1 m ( x i k ∧ x j k ) ∑ k = 1 m x i k x j k r_{i j}=\frac{\sum_{k=1}^{m}\left(x_{i k} \wedge x_{j k}\right)}{\sum_{k=1}^{m} \sqrt{x_{i k} x_{j k}}} rij=k=1mxikxjk k=1m(xikxjk)

第二类:距离法

  • 绝对值倒数法

r i j = { 1 , i = j M m ∣ x i k − x j k ∣ , i ≠ j r_{i j} =\left\{\begin{matrix} 1, i=j \\ \frac{M}{m}\left|x_{i k}-x_{j k}\right| \end{matrix}, i \neq j\right. rij={1,i=jmMxikxjk,i=j

  • 绝对值指数法
    $$
    r_{i j} =\exp \left{-\sum_{k=1}^{m}\left|x_{i k}-x_{j k}\right|\right}

    $$

  • 绝对值减数法

r i j = { 1 − c ∑ k = 1 m ∣ x i k − x j k ∣ , i ≠ j r_{i j} =\left\{1-c \sum_{k=1}^{m}\left|x_{i k}-x_{j k}\right|, \quad i \neq j\right. rij={1ck=1mxikxjk,i=j

其中 c c c适当选取,使得 r i j r_{ij} rij [ 0 , 1 ] [0,1] [0,1] 内分散开

  • 海明距离

r i j = d ( x i , x j ) = ∑ k = 1 m ∣ x i k − x j k ∣ r_{ij}=d\left(x_{i}, x_{j}\right)= \sum_{k=1}^{m}\left|x_{i k}-x_{j k}\right| rij=d(xi,xj)=k=1mxikxjk

  • 欧式距离

r i j = d ( x i , x j ) = ∑ k = 1 m ( x i k − x j k ) 2 r_{ij}=d\left(x_{i}, x_{j}\right) =\sqrt{\sum_{k=1}^{m}\left(x_{i k}-x_{j k}\right)^{2}} rij=d(xi,xj)=k=1m(xikxjk)2

  • 切比雪夫距离

r i j = d ( x i , x j ) = ⋁ k = 1 m ∣ x i k − x j k ∣ r_{ij}=d\left(x_{i}, x_{j}\right)=\bigvee_{k=1}^{m}\left|x_{i k}-x_{j k}\right| rij=d(xi,xj)=k=1mxikxjk

第三类:主观判别法

这类方法是最为简单的一类,首先由专家打分,给出所有关系的值,再对专家的意见进行加权求和即可。

用上述方法生成一个矩阵 R = ( r i j ) n × n R=(r_{ij})_{n\times n} R=(rij)n×n即是相似矩阵,由于通常都要进行归一化处理,其所有元素均在 [ 0 , 1 ] [0,1] [0,1]区间上,因此该矩阵是一个模糊矩阵。

4、动态聚类的方法I-传递闭包法
  • 传递闭包法:

    • 求出模糊相似矩阵 R R R的传递闭包 t ( R ) t(R) t(R);
    • λ \lambda λ由大到小进行聚类, 这里 λ \lambda λ是传递闭包中的元素,由大到小排列即可
    • 画出动态聚类图
  • 传递闭包法举例:

设有5组数据:
x 1 = ( 80 , 10 , 6 , 2 ) , x 2 = ( 50 , 1 , 6 , 4 ) , x 3 = ( 90 , 6 , 4 , 6 ) , x 4 = ( 40 , 5 , 7 , 3 ) , x 5 = ( 10 , 1 , 2 , 4 ) x_{1}=(80,10,6,2), x_{2}=(50,1,6,4), x_{3}=(90,6,4,6), x_{4}=(40,5,7,3), x_{5}=(10,1,2,4) x1=(80,10,6,2),x2=(50,1,6,4),x3=(90,6,4,6),x4=(40,5,7,3),x5=(10,1,2,4)
先对其进行归一化处理,得到特性矩阵(每一行对应一组数据):
X = ( 0.89 1 0.86 0.33 0.56 0.10 0.86 0.67 1 0.60 0.57 1 0.44 0.5 1 0.5 0.11 0.10 0.29 0.67 ) \boldsymbol{X}=\left(\begin{matrix} 0.89 & 1 & 0.86 & 0.33 \\ 0.56 & 0.10 & 0.86 & 0.67 \\ 1 & 0.60 & 0.57 & 1 \\ 0.44 & 0.5 & 1 & 0.5 \\ 0.11 & 0.10 & 0.29 & 0.67 \end{matrix}\right) X=0.890.5610.440.1110.100.600.50.100.860.860.5710.290.330.6710.50.67
通过两次合成,得到其传递闭包:
t ( R ) = R 4 = ( 1 0.63 0.62 0.63 0.53 0.63 1 0.62 0.70 0.53 0.62 0.62 1 0.62 0.53 0.63 0.70 0.62 1 0.53 0.53 0.53 0.53 0.53 1 ) t(R)=R^{4}=\left(\begin{matrix} {1} & {0 . 6 3} & {0 . 6 2} & {0 . 6 3} & {0 . 5 3} \\ {0 . 6 3} & {1} & {0 . 6 2} & {0 . 7 0} & {0 . 5 3} \\ {0 . 6 2} & {0 . 6 2} & {1} & {0 . 6 2} & {0 . 5 3} \\ {0 . 6 3} & {0 . 7 0} & {0 . 6 2} & {1} & {0 . 5 3} \\ {0 . 5 3} & {0 . 5 3} & {0 . 5 3} & {0 . 5 3} & {1} \end{matrix}\right) t(R)=R4=10.630.620.630.530.6310.620.700.530.620.6210.620.530.630.700.6210.530.530.530.530.531
对所有元素排序,容易得到:
1 > 0.70 > 0.63 > 0.62 > 0.53 1>0.70>0.63>0.62>0.53 1>0.70>0.63>0.62>0.53
因此依次取 λ \lambda λ截矩阵,便可得到聚类结果:

  • λ = 1 \lambda=1 λ=1时: X X X 被分成 5 类:

{ x 1 } , { x 2 } , { x 3 } , { x 4 } , { x 5 } \left\{x_{1}\right\},\left\{x_{2}\right\},\left\{x_{3}\right\},\left\{x_{4}\right\},\left\{x_{5}\right\} {x1},{x2},{x3},{x4},{x5}

  • λ = 0.7 \lambda=0.7 λ=0.7时: X X X 被分成 4 类:

{ x 1 } , { x 3 } , { x 2 , x 4 } , { x 5 } \left\{x_{1}\right\},\left\{x_{3}\right\},\left\{x_{2},x_{4}\right\},\left\{x_{5}\right\} {x1},{x3},{x2,x4},{x5}

  • λ = 0.63 \lambda=0.63 λ=0.63时: X X X 被分成 3 类:

{ x 1 , x 2 , x 4 } , { x 3 } , { x 5 } \left\{x_{1},x_{2},x_{4}\right\},\left\{x_{3}\right\},\left\{x_{5}\right\} {x1,x2,x4},{x3},{x5}

  • λ = 0.62 \lambda=0.62 λ=0.62时: X X X 被分成 2 类:

{ x 1 , x 2 , x 3 , x 4 } , { x 5 } \left\{x_{1},x_{2},x_{3},x_{4}\right\},\left\{x_{5}\right\} {x1,x2,x3,x4},{x5}

  • λ = 0.53 \lambda=0.53 λ=0.53时: X X X 被分成 1 类:

{ x 1 , x 2 , x 3 , x 4 , x 5 } \left\{x_{1},x_{2},x_{3},x_{4},x_{5}\right\} {x1,x2,x3,x4,x5}

5、动态聚类的方法II-直接聚类法
  • 直接聚类法:

直接聚类法实际上与传递闭包法只有一个区别:即不用计算传递闭包,而是直接由相似矩阵进行聚类。

  • 例:

仍以上例数据为基础,直接根据相似矩阵给出 λ \lambda λ由大到小的排序:
1 > 0.70 > 0.63 > 0.62 > 0.56 > 0.55 > 0.54 > 0.53 > 0.38 > 0.37 > 0.24 1>0.70>0.63>0.62>0.56>0.55>0.54>0.53>0.38>0.37>0.24 1>0.70>0.63>0.62>0.56>0.55>0.54>0.53>0.38>0.37>0.24
类似传递闭包的方法,此时仍然要考虑 λ = 1 , 0.7 , 0.63 , 0.62 \lambda=1,0.7,0.63,0.62 λ=1,0.7,0.63,0.62几种情况的聚类,而上述方法已经将这些聚类结果给出了,因此只需要考虑其后的聚类。

  • λ = 0.56 , 0.55 , 0.54 \lambda=0.56,0.55,0.54 λ=0.56,0.55,0.54时: X X X 被分成 2 类:

{ x 1 , x 2 , x 3 , x 4 } , { x 5 } \left\{x_{1},x_{2},x_{3},x_{4}\right\},\left\{x_{5}\right\} {x1,x2,x3,x4},{x5}

也就是说,实际上 0.54 ≤ λ ≤ 0.62 0.54 \leq \lambda \leq 0.62 0.54λ0.62时聚类水平不变。而由上例知,在 λ = 0.53 \lambda=0.53 λ=0.53时所有类别已全部归为同一类,因此不需要再继续聚类了。

6、小结

模糊聚类的操作步骤内容丰富,但其主干框架实际上只有几个关键的步骤,即本文开头的那副图。其中最关键的地方在于具体的聚类方法。

通过上述两个例子的对比,可以看到这两类方法各有优缺点:

  • 传递闭包:
    • 优点:由传递闭包进行聚类时不会出现重复的聚类,在考虑聚类水平时操作简单
    • 缺点:需要计算传递闭包,也就是在继续聚类之前需要额外的操作
  • 直接聚类:
    • 优点:不需要计算传递闭包,手工操作更加简单
    • 缺点:由于相似矩阵本身不一定具有传递性,因此聚类过程中可能会出现较多的重复聚类的情况

那么自然地,在具体的问题中应根据实际情况选择更有优势的方法。

  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半个冯博士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值