当前位置:文档之家› 层次聚类算法

层次聚类算法


24
层次聚类 2013-5-15
ROCK


例:购物篮数据库包含关于商品a,b,…g的事物记录。簇C1涉 及商品{a,b,c,d,e},簇C2涉及商品{a,b,f,g} 假设:只考虑相似度而忽略邻域信息。 C1中{a,b,c}和{b,d,e}之间的Jaccard系数 是0.2 而C1中的{a,b,c}和C2中的{a,b,f}的Jaccard系数 是0.5 说明:仅根据Jaccard系数, 很容易导致错误。
18
层次聚类
2013-5-15
BIRCH算法


BIRCH (Balanced Iterative Reducing and Clustering) 利用层次方法的平衡迭代归约和聚类 用聚类特征(CF)和聚类特征树来概括聚类描述。 该算法通过聚类特征可以方便地进行中心、半径、直径及 类内、类间距离的运算。
7.5层次聚类方法
层次聚类方法概述
层次聚类方法将数据对象组成一棵聚类 树。 根据层次分解是自底向上(合并)还是 自顶向下(分裂),进一步分为凝聚的 和分裂的。

2
层次聚类
2013-5-15
层次聚类方法概述



凝聚的层次聚类:一种自底向上的策略,首 先将每个对象作为一个簇,然后合并这些原 子簇为越来越大的簇,直到某个终结条件被 满足。 分裂的层次聚类:采用自顶向下的策略,它 首先将所有对象置于一个簇中,然后逐渐细 分为越来越小的簇,直到达到了某个终结条 件。 层次凝聚的代表是AGNES算法。层次分裂的 代表是DIANA算法。
14
层次聚类
2013-5-15
DIANA算法


DIANA(Divisive ANAlysis)算法是典型 的分裂聚类方法。 在聚类中,用户能定义希望得到的簇数 目作为一个结束条件。
15
层次聚类
2013-5-15
算法 DIANA(自顶向下分裂算法) 输入:n个对象,终止条件簇的数目k。 输出:k个簇,达到终止条件规定簇数目。 (1)将所有对象整个当成一个初始簇; (2) FOR (i=1; i≠k; i++) DO BEGIN (3) 在所有簇中挑出具有最大直径的簇C; (4) 找出C中与其它点平均相异度最大的一个点p并把p放入splinter group,剩余的放在old party中; (5) REPEAT (6) 在old party里找出到最近的splinter group中的点的距离不 大于到old party中最近点的距离的点,并将该点加入splinter group。 (7) UNTIL 没有新的old party的点被分配给splinter group; (8) splinter group和old party为被选中的簇分裂成的两个簇,与其它 簇一起组成新的簇集合。 (9) END.
层次聚类
2013-5-15
13
层次聚类
2013-5-15
AGNES特点

AGNES算法比较简单,但经常会遇到合 并点选择的困难。假如一旦一组对象被合 并,下一步的处理将在新生成的簇上进行。 已做处理不能撤销,聚类之间也不能交换 对象。如果在某一步没有很好的选择合并 的决定,可能会导致低质量的聚类结果。
Old party {2,3,4,5,6,7,8} {3,4,5,6,7,8} {4,5,6,7,8} {5,6,7,8} {5,6,7,8} 终止
层次聚类方法的改进



层次聚类方法尽管简单,但经常会遇到合并 或分裂点的选择的困难。 改进层次方法的聚类质量的一个有希望的方 向是将层次聚类和其他聚类技术进行集成, 形成多阶段聚类。 下面介绍3个改进的层次聚类方法BIRTH, ROCK和Chameleon。
DIANA算法例题
序号 1 2 3 4 5 6 7 8 属性 1 1 1 2 2 3 3 4 4 属性 2 1 2 1 2 4 5 4 5 第1步,找到具有最大直径的簇,对簇中的每个点计算平均相异度(假定采用 是欧式距离)。 1的平均距离:(1+1+1.414+3.6+4.24+4.47+5)/7=2.96 类似地,2的平均距离为2.526;3的平均距离为2.68;4的平均距离为 2.18;5的平均距离为2.18;6的平均距离为2.68;7的平均距离为 2.526;8的平均距离为2.96。 找出平均相异度最大的点1放到splinter group中,剩余点在old party中。 第2步,在old party里找出到最近的splinter group中的点的距离不大于到 old party中最近的点的距离的点,将该点放入splinter group中,该 点是2。 第3步,重复第2步的工作,splinter group中放入点3。 第4步,重复第2步的工作,splinter group中放入点4。 第5步,没有在old party中的点放入了splinter group中且达到终止条件 (k=2),程序终止。如果没有到终止条件,因该从分裂好的簇中选一 个直径最大的簇继续分裂。
3
4 5 6 7 8
2
2 3 3 4 4
1
2 4 5 4 5
步骤 最近的簇距离 1 1
最近的两个簇 {1},{2}
合并后的新簇 {1,2},{3},{4},{5},{6},{7},{8}
2
3 4 5 6
1
1 1 1
10 1
{3},{4}
{5},{6} {7},{8} {1,2},{3,4} {5,6},{7,8}
层次聚类 2013-5-15
3
簇间距离

最小距离
4
层次聚类
2013-5-15
簇间距离

最大距离
5
层次聚类
2013-5-15
簇间距离

平均距离
6
层次聚类
2013-5-15
簇间距离

均值距离


7
层次聚类
2013-5-15
AGNES算法
AGNES(AGglomerative
NESting) 算法最初将每个对象作为一个簇, 然后这些簇根据某些准则被一步步 地合并。 两个簇间的相似度由这两个不同簇 中距离最近的数据点对的相似度来 确定。 聚类的合并过程反复进行直到所有 的对象最终满足簇数目。
{1,2},{3,4},{5},{6},{7},{8}
{1,2},{3,4},{5,6},{7},{8} {1,2},{3,4},{5,6},{7,8} {1,2,3,4},{5,6},{7,8}
层次聚类 2013-5-15
{1,2,3,4},{5,6,7,8}结束
11
层次聚类
2013-5-15
12
层次聚类 2013-5-15
9
AGNES算法例题
序号 1 2 属性1 1 1 属性2 1 2 第1步:根据初始簇计算每个簇之间的距离,随机找出距离最小的两 个簇,进行合并,最小距离为1,合并后1,2两个点合并为一个簇。 第2步:对上一次合并后的簇计算簇间距离,找出距离最近的两个簇 进行合并,合并后3,4点成为一簇。 第3步:重复第2步的工作,5,6点成为一簇。 第4步:重复第2步的工作,7,8点成为一簇。 第5步:合并{1,2},{3,4}成为一个包含四个点的簇。 第6步:合并{5,6},{7,8},由于合并后的簇的数目已经达到了用户输 入的终止条件,程序终止。
步骤 1 2 3 4 5
具有最大直径的簇 splinter group {1,2,3,4,5,6,7,8} {1} {1,2,3,4,5,6,7,8} {1,2} {1,2,3,4,5,6,7,8} {1,2,3} {1,2,3,4,5,6,7,8} {1,2,3,4} {1,2,3,4,5,6,7,8} {1,2,3,4}
层次聚类 2013-5-15
23
ROCK
两个概念:近邻和链接 近邻:两个点pi和pj是近邻,如果 sim(pi,pj)>=θ,sim是相似度函数,θ是 指定的阈值 链接:两个点pi和pj的链接数定义为这 两点的共同近邻个数。 由于在确定点对之间的关系时考虑邻 近的数据点,因此比只关注相似度的 聚类方法更加鲁棒。
层次聚类 2013-5-15
29
割边
图划分算法划分k近邻图,使得割边最 小,即簇C划分为两个子簇Ci和Cj时需 切断的边的加权和最小。 割边用EC(Ci,Cj)表示,用于评估两个 簇之间的绝对互连度。 Chameleon根据每对簇Ci和Cj的相对互 连度RI(Ci,Cj)和相对接近度RC(Ci,Cj) 来决定它们之间的相似度。
利用动态建模的层次聚类算法。采用动 态建模确定簇之间的相似度。 簇之间的相似度依据簇中对象的互连度 和簇的邻近度,即如果两个簇的互连性 都很高且它们又靠得很近则将其合并。

27
层次聚类
2013-5-15
变色龙算法的聚类步骤

Chameleon 算法首先由数据集构造成 一个K-最近邻图Gk ,再通过一个图的划 分算法将图Gk 划分成大量的子图,每个 子图代表一个初始子簇,最后用一个凝 聚的层次聚类算法反复合并子簇,找到 真正的结果簇;
22
层次聚类 2013-5-15
ROCK



ROCK(Robust Clustering using linKs,使用连 接的鲁棒聚类 大多数聚类算法在进行聚类时只估计点与点 之间的相似度,即在每一步中那些最相似的 几个点合并到一个簇中。这种“局部”方法 很容易导致错误。例如:两个完全不同的簇 可能有少数几个点的距离较近,仅仅依据点 与点之间的相似度来做出聚类决定就会导致 这两个簇合并。 ROCK采用一种比较全局的观点,通过考虑 成对点的邻域情况进行聚类。
另一方面,如果考虑链接数,可以成功地把这些 事务划分到恰当地簇中。 例如: 令θ=0.5,则C2中的事务 {a,b,f}与{a,b,g}的链接数是5 而C2中的事务 {a,b,f}与C1中的事 务{a,b,c}之间的链接数是3. 因此,ROCK能够正确地区分出两个不同 的事务簇。
相关主题