聚类基础知识补充

74 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

基本聚类知识

  • 聚类是根据给定样本的特征相似度或距离,将样本归结到若干个类或者簇
  • 聚类算法有很多:层次聚类(包括聚合聚类和分类聚类)和K均值聚类
  • 聚合聚类:开始将每个样本各自分到一个类,之后将相距最近的两类样本合并,建立新类,重复操作知道满足 停止条件
  • 分裂聚类:开始将所有样本分到一个;饿哦,之后将已有类中相距最远的样本分到两个新的类,重复操作直到满足停止条件
  • K均值聚类:基于中心的聚类方法, 迭代将样本分到K个类中,使得每个样本与其所属类的中心或者均值最近

聚类的核心是相似度或距离,其选择是聚类的根本问题

相似度或者距离的选择
1.闵可夫斯基距离

dij=(k=1mxkixkjp)1pd_{ij}=\Biggl(\sum^m_{k=1}|x_{ki}-x_{kj}|^p\Biggr)^{\frac{1}{p}}


    • 其中x_ki,x_kj表示分别表示来自第i个样本的第k个属性和来自第j个样本的第k个属性;d_ij表示这两个样本之间的距离
    • 且p>=1
  • 当p=2,表示的是欧氏距离‘
  • 当p=1,表示的是曼哈顿距离
  • 当p趋于无穷,表示的是切比雪夫距离

dij=maxkxkixkjd_{ij}=max_k|x_{ki}-x_{kj}|

2.马哈拉诺比斯距离
    • 简称马氏距离,考虑各个分量之间的相关性且与各个分量的尺度无关。马氏距离越大相似度越小,距离越小相似度越大

    • 给定一个样本集合X,X=(x_ij)_{m*n}其协方差为S,那么马氏距离公式为: dij=[(xixj)TS1(xixj)]12d_{ij}=[(x_{i}-x_j)^TS^{-1}{(x_i-x_j)]^{\frac{1}{2}}}

    • 其中x_i,x_j表示的是两个样本:
      当S为单位矩阵,马氏距离就是欧氏距离
      所以马氏距离是欧式距离的推广

3.相关系数
    • 样本之间的相似度也可以用相关系数来表示,相关系数越接近1,表示样本越相似

    • 样本x_i和样本x_j之间的相关系数定义为:rij=k=1m(xkixi)(xkjxj)[k=1m(xkixi)2k=1m(xkjxj)2]12r_{ij}=\frac{\sum^m_{k=1}(x_{ki}-x_{i}^{-})(x_{kj}-x_{j}^{-})}{[\sum^m_{k=1}(x_{ki}-x_{i}^{-})^2\sum^m_{k=1}(x_{kj}-x_{j}^{-})^2]^\frac{1}{2}}

    • 其中: xi=1mk=1mxki,xj=1mk=1mxkjx_i^{-}=\frac{1}{m}\sum^m_{k=1}x_{ki}, x_j^{-}=\frac{1}{m}\sum^m_{k=1}x_{kj}

4.夹角余弦
    • 样本之间的相似度也可以用夹角余弦表示,夹角余弦越接近1,样本越相似
    • sij=k=1mxkixkj[k=1mxki2k=1mxkj2]12s_{ij}=\frac{\sum_{k=1}^mx_{ki}x_{kj}}{[\sum_{k=1}^{m}x^2_{ki}\sum_{k=1}^{m}x^2_{kj}]^\frac{1}{2}}
    • 但是有时候结果不一定正确:

类或者簇
  • 用G表示类或者簇
  • 用x_i,x-j表示类中的样本
  • n_{G}表示G中的样本的个数
  • 用d_ij表示样本x_i,x_j之间的距离
类的特征指标
  • 中心,即类的均值:

  • 类的直径

  • 类的散步矩阵

  • 样本的协方差矩阵S_G

类与类之间的距离
  • 衡量类与类之间的距离有4种方法

层次聚类

层次聚类中的聚合聚类需要预先确定的3要素:

  • 距离或相似度
  • 合并规则
  • 停止条件
  • 距离或者相似度可以是闵可夫斯基距离。马哈拉诺比斯距离,相关系数,夹角余弦;合并规则一般是类间距离最小,类间距离可以是最短距离,最长距离,中心距离或者平均距离;停止条件可以是类的个数达到阈值