聚类算法的一个教程

聚类算法的一个教程

原文出自: http://www.elet.polimi.it/upload/matteucc/Clustering/tutorial_html/hierarchical.html

辅助资料: http://149.170.199.144/multivar/ca.htm

层次式聚类方法

基本工作原理

给定要聚类的N的对象以及N*N的距离矩阵(或者是相似性矩阵), 层次式聚类方法的基本步骤(参看S.C. Johnson in 1967)如下:

1.     将每个对象归为一组, 共得到N, 每组仅包含一个对象. 组与组之间的距离就是它们所包含的对象之间的距离.

2.     将最近的两个组合并成一组, 于是总的组数少了一个.

3.     重新计算新的组与所有旧组之间的距离.

4.     重复第2步和第3, 直到最后合并成一个组为止(此组包含了N个对象).

根据步骤3的不同, 可将层次式聚类方法分为几类: single-linkage, complete-linkage 以及 average-linkage 聚类方法等.

single-linkage 聚类法(也称 connectedness minimum 方法): 组间距离等于两组对象之间的最小距离complete-linkage 聚类法 (也称 diameter maximum 方法): 组间距离等于两组对象之间的最大距离average-linkage 聚类法: 组间距离等于两组对象之间的平均距离average-link 聚类的一个变种是R. D'Andrade (1978) UCLUS方法, 它使用的是median距离, 在受异常数据对象的影响方面, 它要比平均距离表现更佳一些.

单一连接聚类算法

以下我们以单一连接聚类算法为例说明Johnson算法的原理。

单一连接算法属于凝聚算法,即每次将两个旧组合并成一个新组,直到最终合并成一个组为止。每合并一次,则在距离矩阵中删除相对应的行与列。

先介绍一些符号:将待聚类的N个对象分别标号为0,1,......, (n-1),D = [d(i,j)]表示对应的N*N距离矩阵。记号L(k)表示第k个组所处的层次,由对象m构成的组记为(m),组(r)与组(s)的距离记为d [(r),(s)]

单一连接聚类算法过程如下:

1.      初始时共有N个组,每个组由一个对象组成。令顺序号m = 0, L(m) = 0.

2.      D中寻找最小距离d[(r),(s)] = min d[(i),(j)].

3.      将两个组(r)(s)合并成一个新组(r,s);m = m +1, L(m) = d[(r),(s)]

4.      更新距离矩阵D: 将表示组(r)和组(s)的行列删除,同时加入表示新组(r,s)的行列;同时定义新组(r,s)与各旧组(k)的距离为 d[(k), (r,s)] = min d[(k),(r)], d[(k),(s)]

5.      反复步骤2-4,直到所有对象合并成一个组为止。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值