机器学习(一)——聚类

文章目录

  • 1. 聚类任务
  • 2. 性能度量
    • 2.1 外部指标
    • 2.2 内部指标
  • 3. 距离计算
    • 3.1 有序属性
    • 3.2 无序属性
    • 3.3 混合属性
  • 4. 原型聚类
    • 4.1 k-means
    • 4.2 学习向量量化(LVQ)
    • 4.3 密度聚类(DBSCAN)
    • 4.4 层次聚类(AGNES)
    • 4.5 高斯混合聚类

参考资料
《机器学习》——周志华

1. 聚类任务

(1)目的
聚类试图将样本划分为若干通常不相交的子集。

(2)符号描述

  • 假定样本集 D = { x 1 , x 2 , ⋯   , x m } D=\{x_1,x_2,\cdots,x_m\} D={x1,x2,,xm}包含m个样本。
  • 每个样本 x i = { x i 1 , x i , 2 , ⋯   , x i , n } x_i=\{x_{i1},x_{i,2},\cdots,x_{i,n}\} xi={xi1,xi,2,,xi,n}是一个n维特征向量。
  • 样本被划分为k个不相交的簇 { C l ∣ l = 1 , 2 , ⋯   , k } \{C_l|l=1,2,\cdots,k\} {Cll=1,2,,k}。我们用 λ j ∈ { 1 , 2 , ⋯   , k } \lambda_j \in \{1,2,\cdots,k\} λj{1,2,,k}表示样本 x j x_j xj的簇标记。
    因此: x j ∈ C λ j x_j \in C_{\lambda_j} xjCλj
  • 聚类结果可以用m个元素的簇标记向量 λ = { λ 1 , λ 2 , ⋯   , λ m } \lambda = \{\lambda_1,\lambda_2,\cdots,\lambda_m\} λ={λ1,λ2,,λm}表示

2. 性能度量

(1)目的

  1. 正如其名,性能度量能够评估聚类效果的好坏。簇内相似度高、簇间相似度低。
  2. 可以将使用的性能度量作为聚类过程的优化目标。

根据是否需要参考模型,可以将指标分为外部指标(external index)内部指标(internal index)

2.1 外部指标

标准: 准确率(贴合情况)

对数据集 D = { x 1 , x 2 , ⋯   , x m } D=\{x_1,x_2,\cdots,x_m\} D={x1,x2,,xm}通过聚类给回的簇划分为 C = { C 1 , C 2 , ⋯   , C k } C=\{C_1,C_2,\cdots,C_k\} C={C1,C2,,Ck}参考模型给出的簇划分为 C ∗ = { C 1 ∗ , C 2 ∗ , ⋯   , C s ∗ } C^*=\{C^*_1,C^*_2,\cdots,C^*_s\} C={C1,C2,,Cs}。令 λ , λ ∗ \lambda,\lambda^* λ,λ为对应的样本簇标记向量。
机器学习(一)——聚类_第1张图片
理解:

  • a 和 d 表示满足两个样本在 C C C获得的簇标签相同(不相同),在 C ∗ C^* C获得的簇标签也相同(不相同)的数量。
  • b 和 c 表示满足两个样本在 C C C获得的簇标签相同(不相同),在 C ∗ C^* C获得的簇标签不相同(相同)的数量。
  • a + b + c + d = C 2 m = m ( m − 1 ) 2 a+b+c+d=C_2^m=\frac{m(m-1)}{2} a+b+c+d=C2m=2m(m1)

(1)Jaccard系数
J C = a a + b + c JC= \frac{a}{a+b+c} JC=a+b+ca

(2)FM指数
F M I = a a + b × a a + c FMI=\sqrt{\frac{a}{a+b} \times \frac{a}{a+c}} FMI=a+ba×a+ca

(3)Rand指数
R I = 2 ( a + d ) m ( m − 1 ) RI=\frac{2(a+d)}{m(m-1)} RI=m(m1)2(a+d)

  • 上述三种指数可以表示在 C , C ∗ C,C^* C,C均划分为相同簇的样本对的数量的总量占比。
  • 取值范围为 [ 0 , 1 ] [0,1] [0,1],值越大越好。值越大表示聚类越贴合实际情况,划分正确率越高。

2.2 内部指标

标准: 簇内相似度高、簇间相似度低
定义四个簇划分指标,再利用指标度量内部指标。

  • 簇内样本的平均距离
    a v g ( C ) = 2 ∣ C ∣ ( ∣ C − 1 ∣ ) ∑ 1 ≤ i ≤ j ≤ ∣ C ∣ d i s t ( x i , x j ) avg(C) = \frac{2}{|C|(|C-1|)} \sum_{1 \leq i \leq j \leq |C|}dist(x_i,x_j) avg(C)=C(C1)21ijCdist(xi,xj)

  • 簇内样本的最远距离
    d i a m ( C ) = max ⁡ 1 ≤ i ≤ j ≤ ∣ C ∣ d i s t ( x i , x j ) diam(C) = \max_{1 \leq i \leq j \leq |C|} dist(x_i,x_j) diam(C)=1ijCmaxdist(xi,xj)

  • 簇间样本的最短距离
    d m i n ( C i , C j ) = min ⁡ x i ∈ C i , x j ∈ C j d i s t ( x i , x j ) d_{min}(C_i,C_j) = \min_{x_i \in C_i,x_j \in C_j} dist(x_i,x_j) dmin(Ci,Cj)=xiCi,xjCjmindist(xi,xj)

  • 簇间中心点的距离
    d c e n ( C i , C j ) = d i s t ( μ i , μ j ) d_{cen}(C_i,C_j) = dist(\mu_i,\mu_j) dcen(Ci,Cj)=dist(μi,μj)

(1)DB指数(DBI)
D B I = 1 k ∑ i = 1 k max ⁡ j ≠ i a v g ( C i ) + a v g ( C j ) d c e n ( C i , C j ) DBI=\frac{1}{k} \sum_{i=1}^k \max_{j \neq i} \frac{avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)} DBI=k1i=1kj=imaxdcen(Ci,Cj)avg(Ci)+avg(Cj)

  • DBI值越小,表示簇内越紧密,簇间越分散。

(2)Dunn指数(DI)
D I = min ⁡ 1 ≤ i ≤ k { min ⁡ j ≠ i ( d m i n ( C i , C j ) max ⁡ 1 ≤ l ≤ k d i a m ( C l ) ) } DI = \min_{1 \leq i \leq k} \{\min_{j \neq i}(\frac{d_{min}(C_i,C_j)}{\max_{1 \leq l \leq k}diam(C_l)}) \} DI=1ikmin{j=imin(max1lkdiam(Cl)dmin(Ci,Cj))}

  • DI值越大,表示簇内越紧密,簇间越分散。

3. 距离计算

我们通过距离来定义相似度度量。
(1)基本性质
机器学习(一)——聚类_第2张图片

3.1 有序属性

举例:{1, 2, 3}中1与2比1与3接近。可以根据次序进行距离度量
(1)闵可夫斯基距离
机器学习(一)——聚类_第3张图片

  • 当P=1时,变成曼哈顿距离
    d i s t ( x i , x j ) = ∑ u = 1 n ∣ x i u − x j u ∣ dist(x_i,x_j) = \sum_{u=1}^n |x_{iu}-x_{ju}| dist(xi,xj)=u=1nxiuxju

  • 当P=2时,变成欧氏距离
    d i s t ( x i , x j ) = ∑ u = 1 n ∣ x i u − x j u ∣ 2 dist(x_i,x_j) =\sqrt{ \sum_{u=1}^n |x_{iu}-x_{ju}|^2} dist(xi,xj)=u=1nxiuxju2

3.2 无序属性

举例:{飞机,火车,轮船}中没办法按照次序进行距离度量。
(1)VDM
m u , a m_{u,a} mu,a表示属性u上取值为a的样本数, m u , a , i m_{u,a,i} mu,a,i表示在第i个簇中属性u上取值为a的样本数。则a,b两个离散属性的VDM距离为:
V D M p ( a , b ) = ∑ i = 1 k ∣ m u , a , i m u , a − m u , b , i m u , b ∣ p VDM_p(a,b) = \sum_{i=1}^k |\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,b}}|^p VDMp(a,b)=i=1kmu,amu,a,imu,bmu,b,ip

理解:无序属性距离的计算需要提前知道簇划分吗?

3.3 混合属性

假设前 n c n_c nc个为有序属性,后面为无需属性。
机器学习(一)——聚类_第4张图片

4. 原型聚类

4.1 k-means

  • 未知标签类型的聚类划分。
  • 均值向量、样本划分

(1)优化目标
机器学习(一)——聚类_第5张图片
解决上述目标为NP难问题,因此通过迭代优化近似求解。

(2)算法
机器学习(一)——聚类_第6张图片

  1. 随机选择k个样本作为中心
  2. 根据样本与选择中心点的距离,划分样本的类别
  3. 计算簇内均值向量,当向量改变时将新的均值向量作为新簇的中心。当不在更新或到达最大轮数或最小调整阈值时退出循环。

理解: 通过最小化簇内均值选择聚合中心位置。

4.2 学习向量量化(LVQ)

  • 需要预知标签类型,用监督信息辅助聚类。
  • 原型向量、拉近远离

(1)优化目标
对于任意样本x,它将被划入距离最近的原形向量所代表的簇中。需要使标记相同的靠拢,标记不同的远离。
p ′ = p i ∗ + η × ( x j − p i ∗ )   靠 近 p ′ = p i ∗ − η × ( x j − p i ∗ )   远 离 p i ∗ = p ′ p'=p_{i^*} + \eta \times (x_j-p_{i^*}) \ 靠近 \\ p'=p_{i^*} - \eta \times (x_j-p_{i^*}) \ 远离 \\ p_{i^*} = p' p=pi+η×(xjpi) p=piη×(xjpi) pi=p

机器学习(一)——聚类_第7张图片

(2)算法
机器学习(一)——聚类_第8张图片

  • 初始化原型向量及其标签

  • 选取样本计算得到与之距离最近的原型向量。

  • 根据标签是否相同,使原型向量拉近或者远离样本。直到达到最大迭代轮数。

理解: 使原型向量靠拢相同标记样本,原理不同标记样本,实现聚类。

4.3 密度聚类(DBSCAN)

此类算法假设聚类结构能通过样本分布的紧密程度确定。
(1)定义
DBSCAN基于一组邻域参数 ( ϵ , M i n P t s ) (\epsilon,MinPts) (ϵ,MinPts)刻画样本分布的紧密程度。给定数据集定义一下概念:
机器学习(一)——聚类_第9张图片

  • 簇:密度可达关系导出的最大的密度相连样本集合。

(2)算法

  1. 任选一个核心对象作为种子
  2. 以该核心对象作为出发点,找出其密度可达的样本生成聚类簇。更新核心对象和未访问对象。
  3. 循环1、2步骤知道所有核心对象都被访问。

机器学习(一)——聚类_第10张图片

4.4 层次聚类(AGNES)

AGNES是一种自底向上聚合策略的层次聚类算法。它的核心思想是找到距离最近的两个簇合并,知道达到预设的聚类数目。
(1)类别
根据如何计算两个簇间的距离(集合间的距离),可以划分为三种类别:

  • 单链接(single-linkage):采用最小距离
  • 全链接(complete-linkage):采用最大距离
  • 均链接(average-linkage):采用平均距离

机器学习(一)——聚类_第11张图片
(2)算法

  1. 将每个样本初始化为一个簇
  2. 计算簇间距 M k × k M_{k \times k} Mk×k
  3. 选择距离最近的两个簇合并为新的簇,并更新样本标签和簇间距。
  4. 循环2、3步骤直到达到预设的聚类数目。

机器学习(一)——聚类_第12张图片

4.5 高斯混合聚类

先验知识: 贝叶斯分类,后续更新。

你可能感兴趣的:(机器学习与大数据分析,聚类,机器学习,算法)