(完整word版)各种聚类算法介绍及对比.docVIP

  • 31
  • 0
  • 约1万字
  • 约 9页
  • 2020-10-31 发布于山东
  • 举报

(完整word版)各种聚类算法介绍及对比.doc

BIRCH好用,但运算复杂 一、层次聚类 1、层次聚类的原理及分类 1)层次法( Hierarchical methods )先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合 并,直到合成了一个类。 其中类与类的距离的计算方法有:最短距离法,最长距离法,中 间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短 距离。 层次聚类算法根据层次分解的顺序分为:自下底向上和自上向下,即凝聚的层次聚类算法 和分裂的层次聚类算法( agglomerative 和 divisive ),也可以理解为自下而上法( bottom- up)和自上而下法( top-down )。 自下而上法就是一开始每个个体( object )都是一个 类,然后根据 linkage 寻找同类,最后形成一个“类”。自上而下法就是反过来,一开始所 有个体都属于一个“类”,然后根据 linkage 排除异己,最后每个个体都成为一个“类”。 这两种路方法没有孰优孰劣之分,只是在实际应用的时候要根据数据特点以及你想要的 “类”的个数,来考虑是自上而下更快还是自下而上更快。至于根据 Linkage 判断“类” 的方法就是最短距离法、最长距离法、中间距离法、类平均法等等(其中类平均法往往被 认为是最常用也最好用的方法,一方面因为其良好的单调性,另一方面因为其空间扩张 / 浓 缩的程度适中)。为弥补分解与合并的不足,层次合并经常要与其它聚类方法相结合,如 循环定位。 2)Hierarchical methods 中比较新的算法有 BIRCH( Balanced Iterative Reducing and Clustering Using Hierarchies 利用层次方法的平衡迭代规约和聚类)主要是在数据量很大的时候使用, 而且数据类型是 numerical 。首先利用树的结构对对象集进行划分,然后再利用其它聚类方法对这些聚类进行优化; ROCK(A Hierarchical Clustering Algorithm for Categorical Attributes )主要用在 categorical 的数据类型上 ; Chameleon ( A Hierarchical Clustering Algorithm Using Dynamic Modeling )里用到的 linkage 是 kNN( k-nearest-neighbor )算法,并 以此构建一个 graph , Chameleon 的聚类效果被认为非常强大,比度很高, O(n^2) 。 2、层次聚类的流程 凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的 簇,直到所有对象都在一个簇中,或者某个终结条件被满足。 绝大多数层次聚类属于凝聚 型层次聚类,它们只是在簇间相似度的定义上有所不同。 这里给出采用最小距离的凝聚层 次聚类算法流程: (1) 将每个对象看作一类,计算两两之间的最小距离; (2) 将距离最小的两个类合并成一个新类; (3) 重新计算新类与所有类之间的距离; (4) 重复 (2) 、 (3) ,直到所有类最后合并成一类。 1 聚类的效果如下图,黑色是噪音点: 另外我们可以看出凝聚的层次聚类并没有类似基本 K 均值的全局目标函数,没有局部极小 问题或是很难选择初始点的问题。合并的操作往往是最终的,一旦合并两个簇之后就不会撤销。当然其计算存储的代价是昂贵的。 3、层次聚类的优缺点 优点: 1,距离和规则的相似度容易定义,限制少; 2,不需要预先制定聚类数; 3,可以发 现类的层次关系; 4,可以聚类成其它形状 缺点: 1,计算复杂度太高; 2,奇异值也能产生很大影响; 3,算法很可能聚类成链状 r 语言中使用 hclust(d, method = complete, members=NULL) :进行层次聚类。 d 为距离矩阵; method 表示类的合并方法, single 最短距离法, complete 最长距离法, median 中间距 离法, mcquitty 相似法, average 类平均法, centroid 重心法, ward 离差平方和法; members 为 NULL 或 d 长度的矢量。 二、划分聚类法 k-means 基于划分的方法( Partition-based methods ):其原理简单来说就是,想象你有一堆散点需 要聚类,想要的聚类效果就是“类内的点都足够近,类间的点都足够远”。 首先你要确定 这堆散点最后聚成几类,然后挑选几个点作为初始中心点,再然后依据预先定好的启发式 算法( heuristic algorithms )给

文档评论(0)

1亿VIP精品文档

相关文档