秋招材料整理——聚类

一、性能度量

  • 非监督学习,无类别标记。试图将样本划分为若干个不相交子集,称为“簇”
  • 性能度量:“簇内相似度高”,“簇间相似度低”
    • 外部指标:将聚类结果 C C 与某个“参考模型” C C* 进行比较;预测类别 λ λ ,参考类别 λ λ^*
      a = S S , S S = { ( x i , x j ) λ i = λ j , λ i = λ j , i < j } a=|SS|,SS={\{(x_i,x_j)|\lambda_i = \lambda_j,\lambda_i^* = \lambda_j^*,i<j}\}
      b = S D , S D = { ( x i , x j ) λ i λ j , λ i = λ j , i < j } b=|SD|,SD={\{(x_i,x_j)|\lambda_i \ne\lambda_j,\lambda_i^* = \lambda_j^*,i<j}\}
      c = D S , D S = { ( x i , x j ) λ i = λ j , λ i λ j , i < j } c=|DS|,DS={\{(x_i,x_j)|\lambda_i = \lambda_j,\lambda_i^* \ne \lambda_j^*,i<j}\}
      d = D D , D D = { ( x i , x j ) λ i λ j , λ i λ j , i < j } d=|DD|,DD={\{(x_i,x_j)|\lambda_i \ne \lambda_j,\lambda_i^* \ne \lambda_j^*,i<j}\}

      • 三种系数均 [ 0 , 1 ] ∈[0,1] ,值越大越好
      • Jaccard系数
        J C = a a + b + c JC=\frac{a}{a+b+c}
      • FM指数
        F M I = a a + b a a + c FMI=\sqrt{\frac{a}{a+b}*\frac{a}{a+c}}
      • Rand指数
        R I = a + d a + b + c + d RI=\frac{a+d}{a+b+c+d}
    • 内部指标:直接考察聚类结果而不利用任何参考模型: d i s t ( ) dist() 距离, μ μ 中心点,共 c c 个点
      簇C内样本间平均距离
      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 \le i <j \le |C|}dist(x_i,x_j)
      簇C内样本间最远距离
      d i a m ( C ) = max 1 i < j C d i s t ( x i , x j ) diam(C)=\max_{1 \le i <j \le |C|}dist(x_i,x_j)
      簇Ci,Cj最近样本间距离
      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)
      簇Ci,Cj中心点间距离
      d c e n ( C i , C j ) = d i s t ( u i , u j ) d_{cen}(C_i,C_j)=dist(u_i,u_j)

      • DB指数
        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 ( u i , u j ) ) DBI=\frac{1}{k}\sum_{i=1}^k\max_{j\ne i}(\frac{avg(C_i)+avg(C_j)}{d_{cen}(u_i,u_j)})
      • Dunn指数
        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 \le i \le k}{\{\min_{j \ne i}(\frac{d_{min}(C_i,C_j)}{\max_{1 \le l \le k}diam(C_l)})\}}

二、原型聚类:

用原型向量刻画聚类结构的不同

  • 距离:闵可夫斯基距离(p范数)
    • p = = 2 p==2 时,欧氏距离
    • p = = 1 p==1 时,曼哈顿距离

1. k-means:通过最小化均方差,将数据集分成k个“簇”

  • 随机初始化 k k 个聚类中心
    迭代:
    • 将样本分到距离最近的聚类中心
    • 更新聚类中心:取所有点的均值;点数为0的中心删掉

2.学习向量量化(LVQ):假设数据样本带有类别标记

  • 随机初始化一组原型向量 p i p_i
    迭代:
    • 计算样本到各 p i p_i 的距离
    • 找出到每个样本最近的 p i p_i ,更新 p i p_i 向该样本靠拢
  • 将样本分到距离最近的 p i p_i

3.高斯混合聚类:用概率模型表达聚类原型,簇划分由原型对应的后验概率确定

1)x的高斯分布概率密度函数
p ( x ) = 1 ( 2 π ) n 2 ( ) 1 2 e 1 2 ( x μ ) T ( ) 1 ( x μ ) p(x)=\frac{1}{(2π)^{\frac{n}{2}}(|\sum|)^{\frac{1}{2}}}e^{-\frac{1}{2}(x-μ)^T(\sum)^{-1}(x-μ)}

记为 p ( x μ Σ ) p(x|μ,Σ) Σ Σ 协方差)
2)高斯混合分布:
p ( x ) = k = 1 K α i p ( x μ i , i ) p(x)=\sum_{k=1}^K\alpha_i*p(x|μ_i,\sum i)

3)高斯混合分布生成样本过程:先根据αi定义的先验分布选择高斯混合成分,αi为选择第i个混合成分的概率,然后根据被选择的混合成分的概率密度函数进行采样,生成样本
4)高斯混合成分zj的先验概率p(zj=i)=αi,根据贝叶斯定理,zj的后验分布
γ j i = P M ( z j = i x j ) \gamma_{ji}=PM(z_j=i|x_j)

= P ( z j = i ) P M ( x j z j = i ) P M ( x j ) =\frac{P(z_j=i)*PM(x_j|z_j=i)}{PM(x_j)}

= α i p ( x j μ i , i ) l = 1 k α l p ( x j μ l , l ) =\frac{\alpha_i*p(x_j|μ_i,\sum_i)}{\sum_{l=1}^k\alpha_l*p(x_j|μ_l,\sum_l)}

Xj的簇标记 λ j = a r g max γ j i \lambda_j=arg \maxγ_{ji}
5)高斯混合分布中 α i μ i Σ i (α_i,μ_i,Σ_i) 的求解:
用极大似然估计,EM算法迭代优化求解,分别对 μ i Σ i μ_i,Σ_i 求导 = 0 =0 ,此时就只剩 α i α_i 了,除了要最大化似然函数,还要满足 α i 0 l = 1 k α l = 1 α_i≥0,\sum_{l=1}^k\alpha_l=1 ,用拉格朗日,最终, α i = 1 m j = 1 m γ j i \alpha_i=\frac{1}{m}\sum_{j=1}^m\gamma_{ji}

高斯混合模型的EM算法:

  • E步:在每步迭代中,先根据当前参数来计算每个样本属于每个高斯成分的后验概率 γ j i γ_{ji}
  • M步:根据前面公式更新$(α_i,μ_i,Σ_i)

6)算法:

  • 初始化 α i μ i Σ i (α_i,μ_i,Σ_i)
  • 计算每一个样本 x j x_j 的后验概率 γ j i γ_{ji}
  • 更新 α i μ i Σ i (α_i,μ_i,Σ_i)
  • 将样本划入相应簇

三、层次聚类

  • 试图在不同层次对数据集进行划分,从而形成树形聚类结构:先将数据集中的每个样本看做一个聚类簇,然后找出距离最近的两个合并,直到达到k个
  • 算法:
    1)将每一个样本初始化为一个聚类簇
    2)初始化距离矩阵
    3)找出距离最近的两个聚类簇,合并
    4)更新矩阵

四、DBSCAN密度聚类:剔除异常数据

  • 假设聚类结构能通过样本样本分布的紧密程度确定,从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇
  • 一组概念:参数 ϵ M i n P t s ϵ ,MinPts (个数)
    1) ϵ ϵ- 邻域 N ϵ ( x j ) = x i D d i s t a n c e ( x i , x j ) ϵ N_ϵ(x_j)={x_i∈D|distance(x_i,x_j)≤ϵ}
    2)核心对象 N ϵ ( x j ) M i n P t s |Nϵ(x_j)|≥MinPts ,则 x j x_j 是核心对象。 
    3)密度直达:若 x i x_i x j x_j ϵ ϵ- 邻域中,且 x j x_j 是核心对象,则 x i x_i x j x_j 密度直达.不满足对称性
    4)密度可达:对于 x i x_i x j x_j ,如果存在样本样本序列 p 1 , p 2 , . . . , p T p_1,p_2,...,p_T 满足 p 1 = x i , p T = x j p_1=x_i,p_T=x_j p t + 1 p_{t+1} p t p_t 密度直达,则称 x j x_j x i x_i 密度可达。即,密度可达满足传递性。不满足对称性
    5)密度相连 x i x_i x j x_j ,若存在核心对象 x k x_k ,使 x i x_i x j x_j 均由 x k x_k 密度可达,则称 x i x_i x j x_j 密度相连。满足对称性。
    簇:由密度可达关系导出的最大密度相连样本集合
    不属于任何簇的样本被认为是噪声或异常样本
  • 算法:
    • 计算核心对象集合:对每一个样本,若它周围的点使其满足 N ϵ ( x j ) M i n P t s |N_ϵ(x_j)|≥MinPts ,则将其加入核心对象集合
    • 以所有核心对象为出发点,找出其密度可达的样本生成聚类簇:
      • 记录当前未访问样本集合 A = D A=D
      • 随机选取一个核心对象 o o 。初始化队列 Q = < o > Q=<o>
      • 只要 Q Q 非空:
          判断 Q Q 中每一个样本是不是核心对象,若是,则将样本 ϵ ϵ- 邻域内的所有点取出,加入到队列 Q Q 中,并从样本集合 D D 中删除
      • 聚类簇 c k = A D ck = A-D
发布了44 篇原创文章 · 获赞 82 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/wenyun_kang/article/details/83476727