模式识别期末复习题集 第五章 聚类分析(包含详细解题步骤,重要概念解释)

模式识别

目录

第一章 绪论
第二章 贝叶斯决策理论
第三章 概率密度函数的参数估计
第四章 非参数判别分类方法
第五章 聚类分析
第六章 特征提取与选择

  • 本系列博客包含2,3,4,5,6章的内容

引言

这是我期末复习时候整理的笔记。我会把每一章单独发一篇博客,都搞到一起无法发布,提示字数太多没办法了。

  • 教材:模式识别及MATLAB实现
  • ISBN: 978-7-121-32127-6
    在这里插入图片描述

第五章 聚类分析

题目1

聚类分析中,有哪些常见的表示样本相似性的方法?有哪些常用的类间距离定义方式?

解析

在聚类分析中,样本相似性的表示方法和类间距离的定义方式是关键。常见的样本相似性表示方法包括欧氏距离、曼哈顿距离、余弦相似度等。常用的类间距离定义方式包括最短距离法、最长距离法、组间平均链锁法、组内平均链锁法和重心法等。

重要概念
  1. 样本相似性表示方法

    • 欧氏距离 d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x, y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2} d(x,y)=i=1n(xiyi)2
      • 适用场景:适合数值型特征,需保证特征量纲一致。
      • 注意事项:对异常值敏感,需进行数据标准化或归一化。
    • 曼哈顿距离 d ( x , y ) = ∑ i = 1 n ∣ x i − y i ∣ d(x, y) = \sum_{i=1}^{n} |x_i - y_i| d(x,y)=i=1nxiyi
      • 适用场景:适合网格路径问题或特征独立分布的情况。
      • 注意事项:对高维数据不稳定。
    • 余弦相似度 cosine similarity ( x , y ) = x ⋅ y ∥ x ∥ ∥ y ∥ \text{cosine similarity}(x, y) = \frac{x \cdot y}{\|x\| \|y\|} cosine similarity(x,y)=x∥∥yxy
      • 适用场景:高维稀疏数据(如文本或推荐系统)。
      • 注意事项:反映方向相似性,不考虑大小差异。
  2. 类间距离定义方式

    • 最短距离法 d ( C 1 , C 2 ) = min ⁡ x ∈ C 1 , y ∈ C 2 d ( x , y ) d(C_1, C_2) = \min_{x \in C_1, y \in C_2} d(x, y) d(C1,C2)=minxC1,yC2d(x,y)
      • 适用场景:寻找密度较高的紧密聚类。
      • 注意事项:可能产生“链状效应”。
    • 最长距离法 d ( C 1 , C 2 ) = max ⁡ x ∈ C 1 , y ∈ C 2 d ( x , y ) d(C_1, C_2) = \max_{x \in C_1, y \in C_2} d(x, y) d(C1,C2)=maxxC1,yC2d(x,y)
      • 适用场景:聚类间差异显著时使用。
      • 注意事项:对噪声和异常值敏感。
    • 组间平均链锁法
      d ( C 1 , C 2 ) = 1 ∣ C 1 ∣ ∣ C 2 ∣ ∑ x ∈ C 1 ∑ y ∈ C 2 d ( x , y ) d(C_1, C_2) = \frac{1}{|C_1||C_2|} \sum_{x \in C_1} \sum_{y \in C_2} d(x, y) d(C1,C2)=C1∣∣C21xC1yC2d(x,y)
      • 适用场景:平衡聚类间所有样本的距离。
      • 注意事项:对噪声较为鲁棒,但计算复杂度高。
    • 组内平均链锁法
      d ( C 1 , C 2 ) = 1 ∣ C 1 ∣ + ∣ C 2 ∣ ( ∑ x ∈ C 1 ∑ y ∈ C 2 d ( x , y ) + ∑ x , y ∈ C 1 d ( x , y ) + ∑ x , y ∈ C 2 d ( x , y ) ) d(C_1, C_2) = \frac{1}{|C_1| + |C_2|} \left( \sum_{x \in C_1} \sum_{y \in C_2} d(x, y) + \sum_{x, y \in C_1} d(x, y) + \sum_{x, y \in C_2} d(x, y) \right) d(C1,C2)=C1+C21 xC1yC2d(x,y)+x,yC1d(x,y)+x,yC2d(x,y)
      • 适用场景:综合类内和类间信息。
      • 注意事项:计算复杂度进一步增加。
    • 重心法
      d ( C 1 , C 2 ) = d ( x ˉ 1 , x ˉ 2 ) d(C_1, C_2) = d(\bar{x}_1, \bar{x}_2) d(C1,C2)=d(xˉ1,xˉ2)
      其中 x ˉ 1 \bar{x}_1 xˉ1 x ˉ 2 \bar{x}_2 xˉ2分别是 C 1 C_1 C1 C 2 C_2 C2的重心。
      • 适用场景:类内分布相对均匀时效果较好。
      • 注意事项:对不规则形状的簇可能失效。

题目 2

给定待分样本 X = [ X p , X o , X u ] X = [X_p, X_o, X_u] X=[Xp,Xo,Xu] A = { w 1 , w 2 , … , w c } A = \{w_1, w_2, \dots, w_c\} A={w1,w2,,wc},证明总体离散度矩阵 S t S_t St 是总的类内离散度矩阵 S w S_w Sw 与类间离散度矩阵 S b S_b Sb 之和,即 S t = S w + S b S_t = S_w + S_b St=Sw+Sb

解析

证明:
令 ω i 类的离散度矩阵为 S i = ∑ X i ∈ ω i ( X i − M i ) ( X i − M i ) T , 则 S W = ∑ i = 1 c s i S b = ∑ i = 1 c N i ( M i − M ) ( M i − M ) T S t = ∑ i = 1 N ( X i − M ) ( X i − M ) T \begin{gathered} &\text{令}\omega_{i}\text{类的离散度矩阵为}S_{i}=\sum_{X_{i}\in\omega_{i}}(X_{i}-M_{i})(X_{i}-&M_{i})^{T},\text{则} \\ &S_{W}=\sum_{i=1}^{c}s_{i} \\ &S_{b}=\sum_{i=1}^{c}N_{i}(M_{i}-M)(M_{i}-M)^{T} \\ &S_{t}=\sum_{i=1}^{N}(X_{i}-M)(X_{i}-M)^{T} &\end{gathered} ωi类的离散度矩阵为Si=Xiωi(XiMi)(XiSW=i=1csiSb=i=1cNi(MiM)(MiM)TSt=i=1N(XiM)(XiM)TMi)T,

S t = ∑ i = 1 N N i ( X i − M ) ( X i − M ) T = ∑ i = 1 c ∑ X i ∈ ω i ( X i − M i + M i − M ) ( X i − M i + M i − M ) T = ∑ i = 1 c ∑ X i ∈ ω i ( X i − M i ) ( X i − M i ) T + ∑ i = 1 c ∑ X i ∈ ω i ( M i − M ) ( M i − M ) T + ∑ i = 1 c ∑ X i ∈ ω i 2 ( X i − M i ) ( M i − M ) T = ∑ i = 1 c S i + ∑ i = 1 c N i ( M i − M ) ( M i − M ) T + 0 = S w + S b \begin{aligned} S_{t} & =\sum_{i=1}^{N}N_{i}(X_{i}-M)(X_{i}-M)^{T} \\ & =\sum_{i=1}^{c}\sum_{X_{i}\in\omega_{i}}(X_{i}-M_{i}+M_{i}-M)(X_{i}-M_{i}+M_{i}-M)^{T} \\ & =\sum_{i=1}^{c}\sum_{X_{i}\in\omega_{i}}(X_{i}-M_{i})(X_{i}-M_{i})^{T} \\ & +\sum_{i=1}^{c}\sum_{X_{i}\in\omega_{i}}(M_{i}-M)(M_{i}-M)^{T} \\ & +\sum_{i=1}^{c}\sum_{X_{i}\in\omega_{i}}2(X_{i}-M_{i})(M_{i}-M)^{T} \\ & =\sum_{i=1}^{c}S_{i}+\sum_{i=1}^{c}N_{i}(M_{i}-M)(M_{i}-M)^{T}+0 \\ & =S_{w}+S_{b} \end{aligned} St=i=1NNi(XiM)(XiM)T=i=1cXiωi(XiMi+MiM)(XiMi+MiM)T=i=1cXiωi(XiMi)(XiMi)T+i=1cXiωi(MiM)(MiM)T+i=1cXiωi2(XiMi)(MiM)T=i=1cSi+i=1cNi(MiM)(MiM)T+0=Sw+Sb

重要概念
  • 这个问题使用的是线性判别分析(LDA)中的离散度矩阵概念。我们要证明总离散度矩阵 S t S_t St 是类内离散度矩阵 S w S_w Sw 与类间离散度矩阵 S b S_b Sb 之和。

    1. 类内离散度矩阵 ( S w S_w Sw): 它是各类样本点相对于该类均值的离散度。
    2. 类间离散度矩阵 ( S b S_b Sb): 它度量的是各类均值相对于总体均值的离散度。
    3. 总离散度矩阵 ( S t S_t St): 它表示所有样本点相对于总体均值的离散度。

    通过展开 S t S_t St,分解为类内和类间两部分后,得到了 S t = S w + S b S_t = S_w + S_b St=Sw+Sb 的结论。这表明,整体的样本离散度可以分解为类内和类间离散度的和。

题目 3

解析

1. 初始化

选择初始聚类中心:

  • C 1 = A 1 ( 2 , 10 ) C_1 = A_1(2,10) C1=A1(2,10)
  • C 2 = A 2 ( 2 , 5 ) C_2 = A_2(2,5) C2=A2(2,5)
  • C 3 = A 3 ( 8 , 4 ) C_3 = A_3(8,4) C3=A3(8,4)
2. 第一次迭代

计算每个数据点到三个聚类中心的欧氏距离,并将其分配到最近的簇。

计算距离

使用欧氏距离公式:
d ( x , y ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 d(x, y) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} d(x,y)=(x2x1)2+(y2y1)2

  • A 1 ( 2 , 10 ) A_1(2,10) A1(2,10)

    • d ( A 1 , C 1 ) = ( 2 − 2 ) 2 + ( 10 − 10 ) 2 = 0 d(A_1, C_1) = \sqrt{(2-2)^2 + (10-10)^2} = 0 d(A1,C1)=(22)2+(1010)2 =0
    • d ( A 1 , C 2 ) = ( 2 − 2 ) 2 + ( 10 − 5 ) 2 = 5 d(A_1, C_2) = \sqrt{(2-2)^2 + (10-5)^2} = 5 d(A1,C2)=(22)2+(105)2 =5
    • d ( A 1 , C 3 ) = ( 2 − 8 ) 2 + ( 10 − 4 ) 2 = 36 + 36 = 72 ≈ 8.49 d(A_1, C_3) = \sqrt{(2-8)^2 + (10-4)^2} = \sqrt{36 + 36} = \sqrt{72} \approx 8.49 d(A1,C3)=(28)2+(104)2 =36+36 =72 8.49
    • 归类到簇1
  • A 2 ( 2 , 5 ) A_2(2,5) A2(2,5)

    • d ( A 2 , C 1 ) = ( 2 − 2 ) 2 + ( 5 − 10 ) 2 = 5 d(A_2, C_1) = \sqrt{(2-2)^2 + (5-10)^2} = 5 d(A2,C1)=(22)2+(510)2 =5
    • d ( A 2 , C 2 ) = ( 2 − 2 ) 2 + ( 5 − 5 ) 2 = 0 d(A_2, C_2) = \sqrt{(2-2)^2 + (5-5)^2} = 0 d(A2,C2)=(22)2+(55)2 =0
    • d ( A 2 , C 3 ) = ( 2 − 8 ) 2 + ( 5 − 4 ) 2 = 36 + 1 = 37 ≈ 6.08 d(A_2, C_3) = \sqrt{(2-8)^2 + (5-4)^2} = \sqrt{36 + 1} = \sqrt{37} \approx 6.08 d(A2,C3)=(28)2+(54)2 =36+1 =37 6.08
    • 归类到簇2
  • A 3 ( 8 , 4 ) A_3(8,4) A3(8,4)

    • d ( A 3 , C 1 ) = ( 8 − 2 ) 2 + ( 4 − 10 ) 2 = 36 + 36 = 72 ≈ 8.49 d(A_3, C_1) = \sqrt{(8-2)^2 + (4-10)^2} = \sqrt{36 + 36} = \sqrt{72} \approx 8.49 d(A3,C1)=(82)2+(410)2 =36+36 =72 8.49
    • d ( A 3 , C 2 ) = ( 8 − 2 ) 2 + ( 4 − 5 ) 2 = 36 + 1 = 37 ≈ 6.08 d(A_3, C_2) = \sqrt{(8-2)^2 + (4-5)^2} = \sqrt{36 + 1} = \sqrt{37} \approx 6.08 d(A3,C2)=(82)2+(45)2 =36+1 =37 6.08
    • d ( A 3 , C 3 ) = ( 8 − 8 ) 2 + ( 4 − 4 ) 2 = 0 d(A_3, C_3) = \sqrt{(8-8)^2 + (4-4)^2} = 0 d(A3,C3)=(88)2+(44)2 =0
    • 归类到簇3
  • B 1 ( 5 , 8 ) B_1(5,8) B1(5,8)

    • d ( B 1 , C 1 ) = ( 5 − 2 ) 2 + ( 8 − 10 ) 2 = 9 + 4 = 13 ≈ 3.61 d(B_1, C_1) = \sqrt{(5-2)^2 + (8-10)^2} = \sqrt{9 + 4} = \sqrt{13} \approx 3.61 d(B1,C1)=(52)2+(810)2 =9+4 =13 3.61
    • d ( B 1 , C 2 ) = ( 5 − 2 ) 2 + ( 8 − 5 ) 2 = 9 + 9 = 18 ≈ 4.24 d(B_1, C_2) = \sqrt{(5-2)^2 + (8-5)^2} = \sqrt{9 + 9} = \sqrt{18} \approx 4.24 d(B1,C2)=(52)2+(85)2 =9+9 =18 4.24
    • d ( B 1 , C 3 ) = ( 5 − 8 ) 2 + ( 8 − 4 ) 2 = 9 + 16 = 25 = 5 d(B_1, C_3) = \sqrt{(5-8)^2 + (8-4)^2} = \sqrt{9 + 16} = \sqrt{25} = 5 d(B1,C3)=(58)2+(84)2 =9+16 =25 =5
    • 归类到簇1
  • B 2 ( 7 , 5 ) B_2(7,5) B2(7,5)

    • d ( B 2 , C 1 ) = ( 7 − 2 ) 2 + ( 5 − 10 ) 2 = 25 + 25 = 50 ≈ 7.07 d(B_2, C_1) = \sqrt{(7-2)^2 + (5-10)^2} = \sqrt{25 + 25} = \sqrt{50} \approx 7.07 d(B2,C1)=(72)2+(510)2 =25+25 =50 7.07
    • d ( B 2 , C 2 ) = ( 7 − 2 ) 2 + ( 5 − 5 ) 2 = 25 + 0 = 5 d(B_2, C_2) = \sqrt{(7-2)^2 + (5-5)^2} = \sqrt{25 + 0} = 5 d(B2,C2)=(72)2+(55)2 =25+0 =5
    • d ( B 2 , C 3 ) = ( 7 − 8 ) 2 + ( 5 − 4 ) 2 = 1 + 1 = 2 ≈ 1.41 d(B_2, C_3) = \sqrt{(7-8)^2 + (5-4)^2} = \sqrt{1 + 1} = \sqrt{2} \approx 1.41 d(B2,C3)=(78)2+(54)2 =1+1 =2 1.41
    • 归类到簇3
  • B 3 ( 6 , 4 ) B_3(6,4) B3(6,4)

    • d ( B 3 , C 1 ) = ( 6 − 2 ) 2 + ( 4 − 10 ) 2 = 16 + 36 = 52 ≈ 7.21 d(B_3, C_1) = \sqrt{(6-2)^2 + (4-10)^2} = \sqrt{16 + 36} = \sqrt{52} \approx 7.21 d(B3,C1)=(62)2+(410)2 =16+36 =52 7.21
    • d ( B 3 , C 2 ) = ( 6 − 2 ) 2 + ( 4 − 5 ) 2 = 16 + 1 = 17 ≈ 4.12 d(B_3, C_2) = \sqrt{(6-2)^2 + (4-5)^2} = \sqrt{16 + 1} = \sqrt{17} \approx 4.12 d(B3,C2)=(62)2+(45)2 =16+1 =17 4.12
    • d ( B 3 , C 3 ) = ( 6 − 8 ) 2 + ( 4 − 4 ) 2 = 4 + 0 = 2 d(B_3, C_3) = \sqrt{(6-8)^2 + (4-4)^2} = \sqrt{4 + 0} = 2 d(B3,C3)=(68)2+(44)2 =4+0 =2
    • 归类到簇3
  • C 1 ( 1 , 2 ) C_1(1,2) C1(1,2)

    • d ( C 1 , C 1 ) = ( 1 − 2 ) 2 + ( 2 − 10 ) 2 = 1 + 64 = 65 ≈ 8.06 d(C_1, C_1) = \sqrt{(1-2)^2 + (2-10)^2} = \sqrt{1 + 64} = \sqrt{65} \approx 8.06 d(C1,C1)=(12)2+(210)2 =1+64 =65 8.06
    • d ( C 1 , C 2 ) = ( 1 − 2 ) 2 + ( 2 − 5 ) 2 = 1 + 9 = 10 ≈ 3.16 d(C_1, C_2) = \sqrt{(1-2)^2 + (2-5)^2} = \sqrt{1 + 9} = \sqrt{10} \approx 3.16 d(C1,C2)=(12)2+(25)2 =1+9 =10 3.16
    • d ( C 1 , C 3 ) = ( 1 − 8 ) 2 + ( 2 − 4 ) 2 = 49 + 4 = 53 ≈ 7.28 d(C_1, C_3) = \sqrt{(1-8)^2 + (2-4)^2} = \sqrt{49 + 4} = \sqrt{53} \approx 7.28 d(C1,C3)=(18)2+(24)2 =49+4 =53 7.28
    • 归类到簇2
  • C 2 ( 4 , 9 ) C_2(4,9) C2(4,9)

    • d ( C 2 , C 1 ) = ( 4 − 2 ) 2 + ( 9 − 10 ) 2 = 4 + 1 = 5 ≈ 2.24 d(C_2, C_1) = \sqrt{(4-2)^2 + (9-10)^2} = \sqrt{4 + 1} = \sqrt{5} \approx 2.24 d(C2,C1)=(42)2+(910)2 =4+1 =5 2.24
    • d ( C 2 , C 2 ) = ( 4 − 2 ) 2 + ( 9 − 5 ) 2 = 4 + 16 = 20 ≈ 4.47 d(C_2, C_2) = \sqrt{(4-2)^2 + (9-5)^2} = \sqrt{4 + 16} = \sqrt{20} \approx 4.47 d(C2,C2)=(42)2+(95)2 =4+16 =20 4.47
    • d ( C 2 , C 3 ) = ( 4 − 8 ) 2 + ( 9 − 4 ) 2 = 16 + 25 = 41 ≈ 6.40 d(C_2, C_3) = \sqrt{(4-8)^2 + (9-4)^2} = \sqrt{16 + 25} = \sqrt{41} \approx 6.40 d(C2,C3)=(48)2+(94)2 =16+25 =41 6.40
    • 归类到簇1

第一次迭代后的簇分配:

  • 簇1: A 1 ( 2 , 10 ) , B 1 ( 5 , 8 ) , C 2 ( 4 , 9 ) A_1(2,10), B_1(5,8), C_2(4,9) A1(2,10),B1(5,8),C2(4,9)
  • 簇2: A 2 ( 2 , 5 ) , C 1 ( 1 , 2 ) A_2(2,5), C_1(1,2) A2(2,5),C1(1,2)
  • 簇3: A 3 ( 8 , 4 ) , B 2 ( 7 , 5 ) , B 3 ( 6 , 4 ) A_3(8,4), B_2(7,5), B_3(6,4) A3(8,4),B2(7,5),B3(6,4)
3. 重新计算聚类中心
  • 簇1新中心:
    C 1 = ( 2 + 5 + 4 3 , 10 + 8 + 9 3 ) = ( 3.67 , 9 ) C_1 = \left( \frac{2 + 5 + 4}{3}, \frac{10 + 8 + 9}{3} \right) = \left( 3.67, 9 \right) C1=(32+5+4,310+8+9)=(3.67,9)

  • 簇2新中心:
    C 2 = ( 2 + 1 2 , 5 + 2 2 ) = ( 1.5 , 3.5 ) C_2 = \left( \frac{2 + 1}{2}, \frac{5 + 2}{2} \right) = \left( 1.5, 3.5 \right) C2=(22+1,25+2)=(1.5,3.5)

  • 簇3新中心:
    C 3 = ( 8 + 7 + 6 3 , 4 + 5 + 4 3 ) = ( 7 , 4.33 ) C_3 = \left( \frac{8 + 7 + 6}{3}, \frac{4 + 5 + 4}{3} \right) = \left( 7, 4.33 \right) C3=(38+7+6,34+5+4)=(7,4.33)

4. 第二次迭代

重新计算每个数据点到新聚类中心的距离,并分配到最近的簇。结果与第一次迭代相同,算法收敛。


请聚类下列数据(其中( x , y x,y x,y )代表坐标),将其分为三个簇。试用C均值算法进行聚类分析,类数c=3,初始聚类中心为 A 1 、 A 2 和 A 3 A_1、A_2和A_3 A1A2A3。(假设距离为欧式距离)

数据点:

  • A 1 ( 2 , 10 ) A_{1}(2,10) A1(2,10)
  • A 2 ( 2 , 5 ) A_{2}(2,5) A2(2,5)
  • A 3 ( 8 , 4 ) A_{3}(8,4) A3(8,4)
  • B 1 ( 5 , 8 ) B_{1}(5,8) B1(5,8)
  • B 2 ( 7 , 5 ) B_{2}(7,5) B2(7,5)
  • B 3 ( 6 , 4 ) B_{3}(6,4) B3(6,4)
  • C 1 ( 1 , 2 ) C_{1}(1,2) C1(1,2)
  • C 2 ( 4 , 9 ) C_{2}(4,9) C2(4,9)
重要概念
  • C均值算法(K-means算法):一种迭代算法,用于将数据点划分为 K K K 个簇,使得每个点属于最近的聚类中心。
  • 欧氏距离:用于衡量两个点之间的距离,公式为:
    d ( x , y ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 d(x, y) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} d(x,y)=(x2x1)2+(y2y1)2
  • 聚类中心:每个簇的中心点,通常是簇内所有点的平均值。
可视化结果

![[clustringtest3.png|400]]

  • 代码:
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.cluster import KMeans
    
    # 给定的数据点
    data = np.array([
        [2, 10],  # A1
        [2, 5],   # A2
        [8, 4],   # A3
        [5, 8],   # B1
        [7, 5],   # B2
        [6, 4],   # B3
        [1, 2],   # C1
        [4, 9]    # C2
    ])
    
    # 使用K-means算法进行聚类,分为3个簇
    kmeans = KMeans(n_clusters=3, random_state=0).fit(data)
    
    # 获取聚类结果
    labels = kmeans.labels_
    centers = kmeans.cluster_centers_
    
    # 可视化聚类结果
    plt.figure(figsize=(8, 6))
    
    # 绘制数据点
    for i in range(3):
        plt.scatter(data[labels == i, 0], data[labels == i, 1], label=f'Cluster {i+1}')
    
    # 绘制聚类中心
    plt.scatter(centers[:, 0], centers[:, 1], s=200, c='red', marker='X', label='Centers')
    
    # 添加标签和标题
    plt.title('K-means Clustering')
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.legend()
    plt.grid()
    
    # 显示图像
    plt.show()
    

题目 4

总结C均值聚类算法、模糊C均值聚类算法、改进的模糊C均值聚类算法流程。

解析
C均值聚类算法

C均值聚类算法(K-means)是一种硬聚类算法,它将数据集划分为 K K K个簇,每个数据点只能属于一个簇。算法流程如下:

  1. 初始化:随机选择 K K K个初始聚类中心。
  2. 分配:将每个数据点分配到距离最近的聚类中心所在的簇。
  3. 更新:重新计算每个簇的聚类中心,通常是簇内所有数据点的均值。
  4. 迭代:重复步骤2和步骤3,直到聚类中心不再发生变化或达到最大迭代次数。
数学公式
  • 欧氏距离公式:
    d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x, y) = \sqrt{\sum_{i=1}^n (x_i - y_i)^2} d(x,y)=i=1n(xiyi)2
  • 聚类中心更新公式:
    C j = 1 ∣ S j ∣ ∑ x ∈ S j x C_j = \frac{1}{|S_j|} \sum_{x \in S_j} x Cj=Sj1xSjx
    其中, S j S_j Sj是第 j j j个簇的数据点集合。
模糊C均值聚类算法

模糊C均值聚类算法(Fuzzy C-means, FCM)是一种软聚类算法,它允许数据点属于多个簇,并使用隶属度来表示数据点属于每个簇的程度。算法流程如下:

  1. 初始化:随机初始化隶属度矩阵 U U U,其中 U i j U_{ij} Uij表示数据点 x i x_i xi属于第 j j j个簇的隶属度。
  2. 计算聚类中心:根据隶属度矩阵 U U U计算每个簇的聚类中心 C j C_j Cj
  3. 更新隶属度:根据数据点和聚类中心的距离,更新隶属度矩阵 U U U
  4. 迭代:重复步骤2和步骤3,直到隶属度矩阵 U U U的变化小于某个阈值或达到最大迭代次数。
数学公式
  • 聚类中心计算公式:
    C j = ∑ i = 1 n ( U i j ) m x i ∑ i = 1 n ( U i j ) m C_j = \frac{\sum_{i=1}^n (U_{ij})^m x_i}{\sum_{i=1}^n (U_{ij})^m} Cj=i=1n(Uij)mi=1n(Uij)mxi
    其中, m m m是模糊因子,通常取 m = 2 m=2 m=2
  • 隶属度更新公式:
    U i j = 1 ∑ k = 1 K ( d ( x i , C j ) d ( x i , C k ) ) 2 m − 1 U_{ij} = \frac{1}{\sum_{k=1}^K \left( \frac{d(x_i, C_j)}{d(x_i, C_k)} \right)^{\frac{2}{m-1}}} Uij=k=1K(d(xi,Ck)d(xi,Cj))m121
    其中, d ( x i , C j ) d(x_i, C_j) d(xi,Cj)是数据点 x i x_i xi到聚类中心 C j C_j Cj的距离。
改进的模糊C均值聚类算法

改进的模糊C均值聚类算法(Improved Fuzzy C-means, IFCM)在FCM的基础上引入了一些改进,例如加权模糊因子、局部密度加权等,以提高聚类效果。算法流程如下:

  1. 初始化:与FCM相同,随机初始化隶属度矩阵 U U U
  2. 计算加权聚类中心:根据加权模糊因子计算每个簇的聚类中心 C j C_j Cj
  3. 更新加权隶属度:根据加权距离和局部密度加权,更新隶属度矩阵 U U U
  4. 迭代:重复步骤2和步骤3,直到隶属度矩阵 U U U的变化小于某个阈值或达到最大迭代次数。
数学公式
  • 加权聚类中心计算公式:
    C j = ∑ i = 1 n ( U i j ) m w i x i ∑ i = 1 n ( U i j ) m w i C_j = \frac{\sum_{i=1}^n (U_{ij})^m w_i x_i}{\sum_{i=1}^n (U_{ij})^m w_i} Cj=i=1n(Uij)mwii=1n(Uij)mwixi
    其中, w i w_i wi是数据点 x i x_i xi的权重。
  • 加权隶属度更新公式:
    U i j = 1 ∑ k = 1 K ( d ( x i , C j ) w i d ( x i , C k ) w i ) 2 m − 1 U_{ij} = \frac{1}{\sum_{k=1}^K \left( \frac{d(x_i, C_j) w_i}{d(x_i, C_k) w_i} \right)^{\frac{2}{m-1}}} Uij=k=1K(d(xi,Ck)wid(xi,Cj)wi)m121
重要概念
  • C均值聚类算法(K-means):一种硬聚类算法,每个数据点只能属于一个簇。
  • 模糊C均值聚类算法(Fuzzy C-means, FCM):一种软聚类算法,允许数据点属于多个簇,并使用隶属度表示数据点属于每个簇的程度。
  • 改进的模糊C均值聚类算法(Improved Fuzzy C-means, IFCM):在FCM的基础上引入加权模糊因子和局部密度加权,以提高聚类效果。
  • 欧氏距离:用于衡量两个点之间的距离,公式为 d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x, y) = \sqrt{\sum_{i=1}^n (x_i - y_i)^2} d(x,y)=i=1n(xiyi)2
  • 隶属度:表示数据点属于某个簇的程度,取值范围为 [ 0 , 1 ] [0, 1] [0,1]

题目 5

以RatioCut切图方式简述谱聚类算法流程。

解析

谱聚类是一种基于图论的聚类算法,它通过将数据点表示为图的顶点,并利用图的拉普拉斯矩阵进行聚类。RatioCut切图方式是谱聚类中的一种常用方法,其目标是最小化簇间相似度同时最大化簇内相似度。算法流程如下:

  1. 构建相似度矩阵

    • 根据数据点之间的相似度构建相似度矩阵 W W W,通常使用高斯核函数计算相似度:
      W i j = exp ⁡ ( − ∥ x i − x j ∥ 2 2 σ 2 ) W_{ij} = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) Wij=exp(2σ2xixj2)
    • 如果数据点 i i i j j j之间的距离大于某个阈值,则将 W i j W_{ij} Wij设为0。
  2. 计算度矩阵

    • 度矩阵 D D D是一个对角矩阵,其对角元素 D i i D_{ii} Dii为相似度矩阵 W W W中第 i i i行的和:
      D i i = ∑ j = 1 n W i j D_{ii} = \sum_{j=1}^n W_{ij} Dii=j=1nWij
  3. 计算拉普拉斯矩阵

    • 拉普拉斯矩阵 L L L定义为:
      L = D − W L = D - W L=DW
  4. 计算归一化拉普拉斯矩阵

    • 归一化拉普拉斯矩阵 L norm L_{\text{norm}} Lnorm定义为:
      L norm = D − 1 / 2 L D − 1 / 2 L_{\text{norm}} = D^{-1/2} L D^{-1/2} Lnorm=D1/2LD1/2
  5. 求解特征值问题

    • 对归一化拉普拉斯矩阵 L norm L_{\text{norm}} Lnorm进行特征值分解,得到前 K K K个最小特征值对应的特征向量。
  6. 构建特征向量矩阵

    • 将前 K K K个特征向量按列排列,构成特征向量矩阵 V V V
  7. K-means聚类

    • 对特征向量矩阵 V V V的每一行进行K-means聚类,得到最终的聚类结果。
重要概念
  • 相似度矩阵 W W W:表示数据点之间的相似度,通常使用高斯核函数计算。
  • 度矩阵 D D D:对角矩阵,其对角元素为相似度矩阵 W W W中每行的和。
  • 拉普拉斯矩阵 L L L:定义为 L = D − W L = D - W L=DW,用于衡量图的连接性。
  • 归一化拉普拉斯矩阵 L norm L_{\text{norm}} Lnorm:定义为 L norm = D − 1 / 2 L D − 1 / 2 L_{\text{norm}} = D^{-1/2} L D^{-1/2} Lnorm=D1/2LD1/2,用于归一化处理。
  • 特征值分解:对矩阵进行特征值分解,得到特征值和特征向量。
  • K-means聚类:对特征向量矩阵进行K-means聚类,得到最终的聚类结果。

题目 6

  1. 设有二维样本: x 1 = [ − 1 , 0 ] T x_1 = [-1, 0]^\mathrm{T} x1=[1,0]T, x 2 = [ 0 , − 1 ] T x_2 = [0, -1]^\mathrm{T} x2=[0,1]T, x 3 = [ 0 , 0 ] T x_3 = [0, 0]^\mathrm{T} x3=[0,0]T, x 4 = [ 2 , 0 ] T x_4 = [2, 0]^\mathrm{T} x4=[2,0]T x 5 = [ 0 , 2 ] T x_5 = [0, 2]^\mathrm{T} x5=[0,2]T。试选用一种合适的方法进行一维特征提取 y i = W T x i y_i = W^\mathrm{T}x_i yi=WTxi。要求求出变换矩阵 W W W,并求出变换结果 y i ( i = 1 , 2 , 3 , 4 , 5 ) y_i \left(i=1,2,3,4,5\right) yi(i=1,2,3,4,5)。(要求:基于 K-L 变换进行特征提取)
  2. 根据 (1) 特征提取后的一维特征,选用一种合适的聚类算法将这些样本分为两类,要求每类样本个数不少于两个,并写出聚类过程。(要求:最短距离法)

解析:
(1)

x = [ − 1 0 0 2 0 0 − 1 0 0 2 ] , R = E ( x x T ) = [ 1 0 0 1 ] , ∣ λ I − R ∣ = ∣ λ − 1 0 0 λ − 1 ∣ = 0 ⟹ λ 1 = λ 2 = 1 R t ⃗ j = λ j t ⃗ j , j = 1 , 2 ⇒ t ⃗ 1 = [ 2 2 , 2 2 ] T 当  d = 1  时,选取  λ 1  对应的  t ⃗ 1  作为变换矩阵 W = [ t ⃗ 1 ] = [ 2 2 , 2 2 ] T y ( 1 ) = W T x = [ 2 2 , 2 2 ] [ − 1 0 0 2 0 0 − 1 0 0 2 ] = [ − 2 2 , − 2 2 , 0 , 2 2 , 2 2 ] \begin{aligned} & x = \begin{bmatrix} -1 & 0 & 0 & 2 & 0 \\ 0 & -1 & 0 & 0 & 2 \end{bmatrix}, \quad R = E(xx^\mathrm{T}) = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \\ & |\lambda I - R| = \begin{vmatrix} \lambda - 1 & 0 \\ 0 & \lambda - 1 \end{vmatrix} = 0 \Longrightarrow \lambda_1 = \lambda_2 = 1 \\ & R \vec{t}_j = \lambda_j \vec{t}_j, \quad j = 1, 2 \Rightarrow \vec{t}_1 = \left[\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right]^\mathrm{T} \\ & \text{当 } d = 1 \text{ 时,选取 } \lambda_1 \text{ 对应的 } \vec{t}_1 \text{ 作为变换矩阵} \\ & W = \left[\vec{t}_1\right] = \left[\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right]^\mathrm{T} \\ & y^{(1)} = W^\mathrm{T}x = \left[\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right] \begin{bmatrix} -1 & 0 & 0 & 2 & 0 \\ 0 & -1 & 0 & 0 & 2 \end{bmatrix} = \left[-\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}, 0, \frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right] \end{aligned} x=[1001002002],R=E(xxT)=[1001],λIR= λ100λ1 =0λ1=λ2=1Rt j=λjt j,j=1,2t 1=[22 ,22 ]T d=1 时,选取 λ1 对应的 t 1 作为变换矩阵W=[t 1]=[22 ,22 ]Ty(1)=WTx=[22 ,22 ][1001002002]=[22 ,22 ,0,22 ,22 ]

降维后的样本矩阵为:
[ y 1 , y 2 , y 3 , y 4 , y 5 ] = [ − 2 2 , − 2 2 , 0 , 2 , 2 ] [y_1, y_2, y_3, y_4, y_5] = \left[-\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}, 0, \sqrt{2}, \sqrt{2}\right] [y1,y2,y3,y4,y5]=[22 ,22 ,0,2 ,2 ]


(2)

采用的聚类算法为最小距离法。

D H K = min ⁡ { D H I , D H J } D_{HK} = \min\{D_{HI}, D_{HJ}\} DHK=min{DHI,DHJ}

  1. 设全部样本分为5类,

  2. 作距离矩阵 D ( 0 ) D(0) D(0)

    • 需要自己计算距离矩阵 D ( 0 ) , D ( 1 ) D(0), D(1) D(0),D(1)
  3. 取最小元素.

  4. ω 1 , ω 2 \omega_1, \omega_2 ω1,ω2 合并为 ω 6 = ( − 2 2 , − 2 2 ) \omega_6 = \left(-\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}\right) ω6=(22 ,22 ), 把 ω 4 , ω 5 \omega_4, \omega_5 ω4,ω5 合并为 ω 7 = ( 2 , − 2 ) \omega_7 = \left(\sqrt{2}, -\sqrt{2}\right) ω7=(2 ,2 )

  5. 作距离矩阵 D ( 1 ) D(1) D(1), 将 ω 3 , ω 6 \omega_3, \omega_6 ω3,ω6 合并为 ω 8 = ( − 2 2 , − 2 2 , 0 ) \omega_8 = \left(-\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}, 0\right) ω8=(22 ,22 ,0)

  6. 聚类满足题目中要求, 分为两类 ω 7 = ( 2 , − 2 ) \omega_7 = \left(\sqrt{2}, -\sqrt{2}\right) ω7=(2 ,2 ), ω 8 = ( − 2 2 , − 2 2 , 0 ) \omega_8 = \left(-\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}, 0\right) ω8=(22 ,22 ,0)

聚类过程:
  1. 初始化
    • 将每个样本单独看作一类:
      z 1 = { y 1 } , z 2 = { y 2 } , z 3 = { y 3 } , z 4 = { y 4 } , z 5 = { y 5 } z_1 = \{y_1\}, \quad z_2 = \{y_2\}, \quad z_3 = \{y_3\}, \quad z_4 = \{y_4\}, \quad z_5 = \{y_5\} z1={y1},z2={y2},z3={y3},z4={y4},z5={y5}
    • 计算初始距离矩阵 D ( 0 ) D(0) D(0)

降维后的样本矩阵为:

[ y 1 , y 2 , y 3 , y 4 , y 5 ] = [ − 2 2 , − 2 2 , 0 , 2 , 2 ] [y_1, y_2, y_3, y_4, y_5] = \left[-\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}, 0, \sqrt{2}, \sqrt{2}\right] [y1,y2,y3,y4,y5]=[22 ,22 ,0,2 ,2 ]

计算步骤

  1. 定义距离公式
    对于两个样本 ( y i ) ( y_i ) (yi) ( y j ) ( y_j ) (yj),它们之间的欧几里得距离为:

D ( y i , y j ) = ∣ y i − y j ∣ D(y_i, y_j) = |y_i - y_j| D(yi,yj)=yiyj

  1. 计算每对样本之间的距离

    • ( y 1 = − 2 2 ) ( y_1 = -\frac{\sqrt{2}}{2} ) (y1=22 )
    • ( y 2 = − 2 2 ) ( y_2 = -\frac{\sqrt{2}}{2} ) (y2=22 )
    • ( y 3 = 0 ) ( y_3 = 0 ) (y3=0)
    • ( y 4 = 2 ) ( y_4 = \sqrt{2} ) (y4=2 )
    • ( y 5 = 2 ) ( y_5 = \sqrt{2} ) (y5=2 )

    计算结果如下:
    D ( y 1 , y 2 ) = ∣ − 2 2 − ( − 2 2 ) ∣ = 0 D ( y 1 , y 3 ) = ∣ − 2 2 − 0 ∣ = 2 2 D ( y 1 , y 4 ) = ∣ − 2 2 − 2 ∣ = 3 2 2 D ( y 1 , y 5 ) = ∣ − 2 2 − 2 ∣ = 3 2 2 D ( y 2 , y 3 ) = ∣ − 2 2 − 0 ∣ = 2 2 D ( y 2 , y 4 ) = ∣ − 2 2 − 2 ∣ = 3 2 2 D ( y 2 , y 5 ) = ∣ − 2 2 − 2 ∣ = 3 2 2 D ( y 3 , y 4 ) = ∣ 0 − 2 ∣ = 2 D ( y 3 , y 5 ) = ∣ 0 − 2 ∣ = 2 D ( y 4 , y 5 ) = ∣ 2 − 2 ∣ = 0 \begin{aligned} D(y_1, y_2) &= \left| -\frac{\sqrt{2}}{2} - \left(-\frac{\sqrt{2}}{2}\right) \right| = 0 \\ D(y_1, y_3) &= \left| -\frac{\sqrt{2}}{2} - 0 \right| = \frac{\sqrt{2}}{2} \\ D(y_1, y_4) &= \left| -\frac{\sqrt{2}}{2} - \sqrt{2} \right| = \frac{3\sqrt{2}}{2} \\ D(y_1, y_5) &= \left| -\frac{\sqrt{2}}{2} - \sqrt{2} \right| = \frac{3\sqrt{2}}{2} \\ D(y_2, y_3) &= \left| -\frac{\sqrt{2}}{2} - 0 \right| = \frac{\sqrt{2}}{2} \\ D(y_2, y_4) &= \left| -\frac{\sqrt{2}}{2} - \sqrt{2} \right| = \frac{3\sqrt{2}}{2} \\ D(y_2, y_5) &= \left| -\frac{\sqrt{2}}{2} - \sqrt{2} \right| = \frac{3\sqrt{2}}{2} \\ D(y_3, y_4) &= \left| 0 - \sqrt{2} \right| = \sqrt{2} \\ D(y_3, y_5) &= \left| 0 - \sqrt{2} \right| = \sqrt{2} \\ D(y_4, y_5) &= \left| \sqrt{2} - \sqrt{2} \right| = 0 \\ \end{aligned} D(y1,y2)D(y1,y3)D(y1,y4)D(y1,y5)D(y2,y3)D(y2,y4)D(y2,y5)D(y3,y4)D(y3,y5)D(y4,y5)= 22 (22 ) =0= 22 0 =22 = 22 2 =232 = 22 2 =232 = 22 0 =22 = 22 2 =232 = 22 2 =232 = 02 =2 = 02 =2 = 2 2 =0

  2. 构建距离矩阵 D ( 0 ) D(0) D(0)
    将上述计算结果填入矩阵中:
    D ( 0 ) = ( 0 0 2 2 3 2 2 3 2 2 0 0 2 2 3 2 2 3 2 2 2 2 2 2 0 2 2 3 2 2 3 2 2 2 0 0 3 2 2 3 2 2 2 0 0 ) D(0) = \begin{pmatrix} 0 & 0 & \frac{\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} \\ 0 & 0 & \frac{\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 & \sqrt{2} & \sqrt{2} \\ \frac{3\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} & \sqrt{2} & 0 & 0 \\ \frac{3\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} & \sqrt{2} & 0 & 0 \end{pmatrix} D(0)= 0022 232 232 0022 232 232 22 22 02 2 232 232 2 00232 232 2 00

    简化后的 D ( 0 ) D(0) D(0)
    D ( 0 ) = ( 0 0 0 2 2 2 2 0 3 2 2 3 2 2 2 0 3 2 2 3 2 2 2 0 0 ) D(0) = \begin{pmatrix} 0 & & & & \\ 0 & 0 & & & \\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 & & \\ \frac{3\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} & \sqrt{2} & 0 & \\ \frac{3\sqrt{2}}{2} & \frac{3\sqrt{2}}{2} & \sqrt{2} & 0 & 0 \end{pmatrix} D(0)= 0022 232 232 022 232 232 02 2 000

  3. 第一次合并

    • 可知 z 1 z_1 z1 z 2 z_2 z2 z 4 z_4 z4 z 5 z_5 z5 的距离最短。
    • z 1 z_1 z1 z 2 z_2 z2 合并为 z 6 = { y 1 , y 2 } z_6 = \{y_1, y_2\} z6={y1,y2}
    • z 4 z_4 z4 z 5 z_5 z5 合并为 z 7 = { y 4 , y 5 } z_7 = \{y_4, y_5\} z7={y4,y5}
  4. 第二次合并

    • 此时存在 3 个聚类: z 3 , z 6 , z 7 z_3, z_6, z_7 z3,z6,z7
    • 计算新的距离矩阵 D ( 1 ) D(1) D(1)
      D ( 1 ) = ( 0 0 2 2 0 3 2 2 2 0 ) D(1) = \begin{pmatrix} 0 & 0 & \\ \frac{\sqrt{2}}{2} & 0 & \\ \frac{3\sqrt{2}}{2} & \sqrt{2} & 0 \end{pmatrix} D(1)= 022 232 002 0
    • 可知 z 3 z_3 z3 z 6 z_6 z6 的距离最短。
    • z 3 z_3 z3 z 6 z_6 z6 合并为 z 8 = { y 1 , y 2 , y 3 } z_8 = \{y_1, y_2, y_3\} z8={y1,y2,y3}
  5. 最终结果

    • 此时存在 2 个单类:
      z 7 = { y 4 , y 5 } , z 8 = { y 1 , y 2 , y 3 } z_7 = \{y_4, y_5\}, \quad z_8 = \{y_1, y_2, y_3\} z7={y4,y5},z8={y1,y2,y3}
    • 满足题意要求。

总结:
  • 采用 最小距离法 进行聚类,最终将样本分为两类:
    • 第一类: { y 4 , y 5 } \{y_4, y_5\} {y4,y5}
    • 第二类: { y 1 , y 2 , y 3 } \{y_1, y_2, y_3\} {y1,y2,y3}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值