DataMining-聚类分析

(2017-04-02 银河统计)

聚类分析


目录概览

  • 1.聚类的概念

  • 2.两个距离的概念

  • 3.聚类的分类

  • 4.聚类方法的选择

  • 5.聚类的过程

  • 6.聚类分析实战

    • (I) 聚类分析R实战

      • 1.对鸢尾花(Iris)数据进行聚类分析
    • (II) 聚类分析Python实战

      • 1.对鸢尾花(Iris)数据进行聚类分析

1.聚类的概念

  物以类聚、人以群分,但根据什么分类呢?聚类分析(cluster analysis)是研究“物以类聚”的一种方法, 在国内曾有人称它为群分析、点群分析、簇群分析等。例如,如想把中国的县分类,就有多种方法。可以按照自然条件来分,比如考虑降水、土地、日照、湿度等,也可考虑收入、教育水准、医疗条件、基础设施等指标;既可以用某一项来分类,也可以同时考虑多项指标来分类。

  聚类分析是依据研究对象的个体特征,对其进行分类的方法,分类在经济、管理、社会学、医学等领域,都有广泛的应用。聚类分析能够将一批样本(或变量)数据根据其诸多特征,按照在性质上的亲疏程度在没有先验知识的情况下进行自动分类,产生多个分类结果。类内部个体特征之间具有相似性,不同类间个体特征的差异性较大。


2.两个距离的概念

  由一个点组成的类是最基本的类;如果每一类都由一个点组成,那么点间的距离就是类间距离。但是如果某一类包含不止一个点,那么就要确定类间距离,类间距离是基于点间距离定义的:比如两类之间最近点之间的距离可以作为这两类之间的距离,也可以用两类中最远点之间的距离或各类的中心之间的距离来作为类间距离。在计算时,各种点间距离和类间距离的选择可以通过设置不同的参数实现。不同的选择的结果会不同,但一般不会差太多。


3.聚类的分类

  • (I) 根据分类的对象可将聚类分析分为:

    • Q型聚类,即样品(观测值)聚类【clustering for individuals】。
    • R型聚类,即指标(变量)聚类【clustering for variables】。

  对一个数据,既可以对变量(指标)进行分类(相当于对数据中的列分类),也可以对观测值(事件,样品)来分类(相当于对数据中的行分类)。当然,不一定事先假定有多少类,完全可以按照数据本身的规律来分类。对变量的聚类称为R型聚类,而对观测值聚类称为Q型聚类。它们在数学上是无区别的。

  Q型是对样本进行分类处理,其作用在于:1.能利用多个变量对样本进行分类;2.分类结果直观,聚类谱系图能明确、清楚地表达其数值分类结果;3.所得结果比传统的定性分类方法更细致、全面、合理。

  R型是对变量进行分类处理,其作用在于:1.可以了解变量间及变量组合间的亲疏关系;2.可以根据变量的聚类结果及它们之间的关系,选择主要变量进行回归分析或Q型聚类分析。

  • (II) 根据分类的原理可将聚类分析分为:

    • a) 系统聚类
    • b) k-均值聚类
    • c) 密度聚类
    • d) 模糊聚类
  a) 系统聚类(分层聚类)(又称谱系聚类)(实际应用中使用最多)

  系统聚类(hierarchical cluster)的基本原理:首先将一定数量的样本或指标各自看成一类,然后根据样本(或指标)的亲疏程度,将亲疏程度最高的两类进行合并,然后考虑合并后的类与其他类之间的亲疏程度,再进行合并。重复这一过程,直到将所有的样本(或指标)合并为一类。

  系统聚类分为Q型聚类和R型聚类两种:Q型聚类是对样本进行聚类,它使具有相似特征的样本聚集在一起,是差异性大的样本分离开来;R型聚类是对变量进行聚类,它使差异性大的变量分离开来,相似的变量聚集在一起,这样就可以在相似变量中选择少数具有代表性的变量参与其它分析,实现减少变量个数、降低变量维度的目的。

  系统聚类事先不用确定分多少类,开始时,有多少点就是多少类。它第一步先把最近的两类(点)合并成一类,然后再把剩下的最近的两类合并成一类;这样下去,每次都少一类,直到最后只有一大类为止。越是后来合并的类,距离就越远。

  系统聚类也称为层次聚类,分类的单位由高到低呈树形结构,且所处的位置越低,其所包含的对象就越少,但这些对象间的共同特征越多。该聚类方法只适合在小数据量的时候使用,数据量大的时候速度会非常慢。

  b) k-均值聚类(快速聚类)

  k-均值聚类(又称快速聚类法),是由MacQueen于1967年提出的,它将数据看成K维空间上的点,以距离作为测度个体“亲疏程度”的指标,并通过牺牲多个解为代价换得高的执行效率。但是,K-均值法只能产生指定类数的聚类结果,而类数的确定离不开实践经验的积累。

  快速聚类分析的基本思想是:首先按照一定方法选取一批凝聚点(聚心),再让样本向最近的凝聚点凝聚,形成初始分类,然后再按最近距离原则修改不合理的分类,直到合理为止。因此,在快速聚类中,应首先要求用户自行给出需要聚成多少类,最终也只能输出关于它的唯一解。快速聚类是一个反复迭代的分类过程,在聚类过程中,样本所属的类不断调整,直到最终达到稳定为止。

  k-均值聚类事先要确定分多少类, 前面说过,聚类可以走着瞧,不一定事先确定有多少类;但是这里的k-均值聚类(k-means cluster,也叫快速聚类,quick cluster)却要求你先说好要分多少类。看起来有些主观,是吧!假定你说分3类,这个方法还进一步要求你事先确定3个点为“聚类种子”;也就是说,把这3个点作为三类中每一类的基石。然后,根据和这三个点的距离远近,把所有点分成三类。再把这三类的中心(均值)作为新的基石或种子(原来 “种子”就没用了),再重新按照距离分类。如此叠代下去,直到达到停止叠代的要求(比如,各类最后变化不大了,或者叠代次数太多了)。显然,前面的聚类种子的选择并不必太认真,它们很可能最后还会分到同一类中呢。(注意:k-均值聚类只能做Q型聚类,如要做R型聚类,需要把数据阵进行转置。)

  c) 密度聚类
  d) 模糊聚类

4.聚类方法的选择

  在实际工作中,当需要研究样品与样品之间关系时,一般用距离系数统计量或者相似系数统计量作为分类计算依据,这种方法又称为Q型聚类法;当需要研究变量与变量之间的关系时,常用相关系数统计量作为分类计算依据,这种方法又称R型聚类法。

  • 选择适当的聚类方法

    • 聚合法

        开始把每个样品看成自成一类,计算各类之间的相似程度的统计量,把最相似的两类合并为一类,再计算各类相似程度统计量,把最相似的两类合并,照此继续下去,一直到所有样品都聚合成一类为止,最后人为确定合适的分类数,得到分类结果。
      
    • 分解法

        它的聚类过程恰好和聚合法相反,开始把全体样品看成一类,然后分成二类,……,一直到每个样品为一类或分到不能再分时为止,通常要设计一个分类函数(目标函数)来控制整个分类过程。
      
    • 调优法

        开始人为将样品作初始分类,在一定准则下判断这个分类是否最优,如果不是最优,则对分类进行修改,再判断修改后的分类是否最优,若仍不是最优,再作修改,不断重复上述步骤,一直到分类方案最优为止。
      
    • 动态聚类法

        步骤:
        1、按照一定的原则选择一批凝聚点(聚核)。
        2、让样品向最近的凝聚点凝聚,这样就由点凝聚成类,得到初始分类。
        3、初始分类不一定合理,可按最近距离原则进行修改,直到分类合理得到最终的分类为止。
      

5.聚类的过程

  数据的标准化(Normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是0-1标准化和Z标准化。

  • 2.构造关系矩阵(亲疏关系的描述--“距离”和相似度)

  描述变量或样本的亲疏程度的数量指标有两种:1.相似度——性质越接近的样品,相似系数越接近于1或-1;彼此无关的样品相似系数则接近于0,聚类时相似的样品聚为一类。 2.距离——将每一个样品看作m维空间的一个点,在这m维空间中定义距离,距离较近的点归为一类。

  • 3.聚类(根据不同方法进行聚类)

  • 4.确定最佳分类(类别数)


6.聚类分析实战

  • (I) 聚类分析R实战

    • 1.对鸢尾花(Iris)数据进行聚类分析

  • (II) 聚类分析Python实战

    • 1.对鸢尾花(Iris)数据进行聚类分析

posted @ 2017-04-03 00:38  银河统计  阅读(1221)  评论(0编辑  收藏  举报