聚类分析

根据邵俊明老师的课件整理而成

  • 聚类分析Cluster Analysis
    • 聚类分析的作用
    • 聚类分析的目的
    • 聚类算法
      • 划分方法 partitioning method
        • K - Means 算法
        • K - 中心点算法
      • 层次的方法hierarchical method
        • AGNES算法
        • DIANA算法
      • 基于密度的方法density-based method
        • DBSCAN 算法
      • 基于网格的方法grid-based method
        • STING算法
    • 其他聚类方法


聚类分析(Cluster Analysis)

  • 聚类

    将数据分为多个簇(Clusters),使得在同一个簇内对象之间具有较高的相似度,而不同簇之间的对象差别较大

  • 探索数据内部潜在的自然分组结构

  • 无监督学习(无类别信号)

聚类分析的作用

  • 聚类分析是获得数据内部结构的有效方法
    • 通过观察聚类得到的每个簇的特点,可以集中对特定的某些簇作进一步分析
    • 这在诸如市场细分、目标顾客定位、业绩估评、生物种群划分、城市规划等方面具有广阔的应用前景
  • 聚类分析可以作为其它算法的预处理步骤
    • 利用聚类进行数据预处理,可以获得数据的基本概况
    • 在此基础上进行特征抽取或分类就可以提高精确度和挖掘效率
    • 也可将聚类结果用于进一步关联分析,以获得进一步的有用信息
  • 聚类分析可以完成噪声点/孤立点的挖掘
    • 许多数据挖掘算法试图使孤立点影响最小化,或者排除它们
    • 孤立点本身可能是非常有用的。如在欺诈探测中,孤立点可能预示着欺诈行为的存在
    • 许多聚类分析算法都具有噪声点检测的功能

聚类分析的目的

寻找数据中潜在的自然分组结构 (a structure of “natural” grouping)

  • 聚类分析努力使得数据簇满足下面两个条件
    • 一个簇内的数据尽量相似(high intra-class similarity)
    • 不同簇的数据尽量不相似(low inter-class similarity)

聚类算法

按照聚类的基本思想可主要分为4种方法

划分方法 (partitioning method)

  • 给定一个有n个对象的数据集,它将数据划分为k个簇,而且这k个划分满足下列条件
    • 每一个簇至少包含一个对象
    • 每一个对象属于且仅属于一个簇
  • 基本思路:
    • 对于给定的k,算法首先给出一个初始的划分方法,以后通过反复迭代的方法改变划分,使得每一次改进之后的划分方案都较前一次更好
    • 经典的算法有:K-Means(K-均值), K-Mediods(K-中心点)等

K - Means 算法

  • 聚类目标函数:簇对象到簇中心平方误差准则最小
  • 优点
    • 经典算法,简单、快速
    • 对处理大数据集,该算法是相对可伸缩和高效率的
  • 缺点
    • 必须事先给出k(parameter-free clustering algorithms)
    • 对初值敏感,对于不同的初始值,可能会导致不同结果
    • 不适合于发现非球形状的簇或者大小差别很大的簇。(使用 DBSCAN 较优)
    • 对于“躁声”和孤立点数据是敏感的( 使用 K-中心点较优)

K - 中心点算法

  • 利用代表性的对象(中心点),而不是均值代表每个簇,又称PAM算法(Partitioning Around Mediods)
  • 聚类目标函数:簇对象到簇中心点绝对误差之和最小原则
  • 基本思路
    • 为每个簇随机选择一个代表对象(中心点);
    • 剩余的对象根据其与代表对象的距离分配给与其最近的一个簇;
    • 反复地用非代表对象来替换代表对象,以提高聚类的质量,直至找到最合适的中心点
  • 相比 K-MEANS,对于孤立点数据没有那么敏感
  • 时间复杂度很高,很难处理大规模数据

层次的方法(hierarchical method)

对给定的数据集进行层次的分解,直到某种条件满足为止。具体又可分为:

  • 凝聚的层次聚类
    • 一种自底向上的策略,首先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到某个终结条件被满足
    • 代表是 AGNES 算法
  • 分裂的层次聚类
    • 采用自顶向下的策略,它首先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到达到了某个终结条件
    • 代表是 DIANA 算法
  • 使用距离作为合并或分裂的标准。这种方法不需要输入聚类的数目k,但是需要一个终止条件。

AGNES算法

  • 最初将每个对象作为一个簇,然后这些簇根据某些准则被一步步地合并。
  • 两个簇间的相似度由这两个不同簇中距离最近的数据点对的相似度来确定。
  • 聚类的合并过程反复进行直到所有的对象最终满足簇数目

DIANA算法

  • 用户能定义希望得到的簇数目作为一个结束条件
  • 它使用下面两种测度方法
    • 簇的直径:在一个簇中的任意两个数据点的距离中的最大值
    • 平均相异度(平均距离)

基于密度的方法(density-based method)

  • 只要一个区域中的点的密度大于某个阈值,就把它加到与之相近的聚类中去
  • 这类算法能克服基于距离的算法只能发现“类圆形”的聚类的缺点,可发现任意形状的聚类,且对噪声数据不敏感
  • 计算密度单元的计算复杂度大,需要建立空间索引来降低计算量,且对数据维数的伸缩性较差
  • 这类方法需要扫描整个数据库,每个数据对象都可能引起一次查询,因此当数据量大时会造成频繁的I/O操作
  • 代表算法有:DBSCAN、OPTICS、DENCLUE算法等

DBSCAN 算法

  • DBSCAN(Density-Based Spatial Clustering of Applications with Noise)一个比较有代表性的基于密度的聚类算法
  • 与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇
  • 可以利用类的高密度连通性,快速发现任意形状的类
  • 在一个数据空间中,高密度区总是被低密度区所分割
  • 它能够从含有噪音的空间数据中发现任意形状的聚类
  • 基本思想
    • 对于一个类中的每个对象,在其给定半径的领域中包含的对象不能少于某一给定的最小数目
    • 在DBSCAN中,发现一个类的过程是基于这样的事实:一个类能够被其中的任意一个核心对象所确定
  • 具体过程
    • DBSCAN通过检查数据集中每个对象的ε-邻域来寻找聚类
    • 如果一个点p的ε-邻域包含多于MinPts个对象,则创建一个p作为核心对象的新簇
    • DBSCAN反复地寻找从这些核心对象密度可达的对象,这个过程可能涉及一些密度可达簇的合并
    • 当没有新的点可以被添加到任何簇时,该过程结束。
  • 对参数 EPS 和 MinPts 非常敏感,但是这两个参数的选取主要依靠主观判断
  • 如果数据库比较大的时候要进行大量的I/O 开销

基于网格的方法(grid-based method)

  • 将对象空间量化为有限数目的单元,形成一个网格结构,所有的聚类都在这个网格结构中上进行
  • 优点是处理速度很快,其处理时间独立于数据对象的数目,只与量化空间中每一维的单元数目有关
  • 代表算法有利用存储在网格单元中的统计信息进行聚类的STING算法和在高维数据空间基于网格和密度的聚类方法等

STING算法

  • STING(Statistaical Information Grid_based method)是一种基于网格的多分辨率聚类技术
  • 它将空间区域划分为矩形单元
  • 针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构:
    • 高层的每个单元被划分为多个低一层的单元
    • 高层单元的统计参数可以很容易的从底层单元的计算得到
    • 这些参数包括属性无关的参数count、属性相关的参数m(平均值)、s(标准偏差)、min(最小值)、max(最大值)以及该单元中属性值遵循的分布类型
  • STING算法采用了一种多分辨率的方法来进行聚类分析
  • 该聚类算法的质量取决于网格结构最低层的粒度
    • 如果粒度较粗,则聚类质量会受到影响
    • 如果粒度比较细,处理的代价会显著增加

其他聚类方法

  • 子空间聚类
  • 图聚类

你可能感兴趣的:(数据挖掘,聚类分析)