1 Agglomerative Clutsering
这是一种自底而上的层次聚类方法。大致可以分为三步:
1.将每一个元素单独定为一类
2.每一轮都合并指定距离(对指定距离的理解很重要)最小的类
3.迭代第二步,直到所有的元素都归为同一类/类别数量已经达到了我们需要的数量
2 Agglomerative Clutsering的分类
根据对元素之间相似度(距离)的不同定义,将Agglomerative Clustering的聚类方法分为三种:Single-linkage,Complete-linkage和Group average.
Ward | 要比较的距离为所有簇内平方差的总和 |
Single-linkage | 要比较的距离为元素对之间的最小距离 |
Complete-linkage | 要比较的距离为元素对之间的最大距离 |
Group average | 要比较的距离为类之间的平均距离 |
其中平均距离的计算方式为,假设有A,B两个类,A中有n个元素,B中有m个元素。在A与B中各取一个元素,可得到他们之间的距离。将nm个这样的距离相加,得到距离和。最后距离和除以nm得到A,B两个类的平均距离。
2.1 举例
假如我们有5个元素,ABCDE,他们之间两两的距离如下:
2.1.1 single-linkage
- 首先每个元素一个类:{A}{B}{C}{D}{E}
- 然后判断两个类之间的最小距离
- 最小的 最小距离为1:{A}{B}合并
AB | C | D | E | |
AB | 0 | A->C=3,B->C=2 ∴{AB}->C=2 | A->D=4,B->D=3 ∴{AB}->D=3 | A->E=5,B->E=4 ∴{AB}->E=4 |
C | A->C=3,B->C=2 ∴{AB}->C=2 | 0 | 1 | 2 |
D | A->D=4,B->D=3 ∴{AB}->D=3 | 1 | 0 | 1 |
E | A->E=5,B->E=4 ∴{AB}->E=4 | 2 | 1 | 0 |
- 最小的 最小距离为1:{C}{D}合并
AB | CD | E | |
AB | 0 | A->C=3,B->C=2 A->D=4,B->D=3 ∴{AB}->{CD}=2 | A->E=5,B->E=4 ∴{AB}->E=4 |
CD | A->C=3,B->C=2 A->D=4,B->D=3 ∴{AB}->{CD}=2 | 0 | C->E=2,D->E=1 ∴{CD}->E=1 |
E | A->E=5,B->E=4 ∴{AB}->E=4 | C->E=2,D->E=1 ∴{CD}->E=1 | 0 |
- 最小的 最小距离为1:{CD}{E}合并
AB | CDE | |
AB | 0 | A->C=3,B->C=2 A->D=4,B->D=3 A->E=5,B->E=4 ∴{AB}->{CDE}=2 |
CDE | A->C=3,B->C=2 A->D=4,B->D=3 A->E=5,B->E=4 ∴{AB}->{CDE}=2 | 0 |
- 最小的 最小距离为2{AB}{CDE}合并
2.1.2 Complete-linkage
- 首先每个元素一个类:{A}{B}{C}{D}{E}
- 然后判断两个类之间的最大距离
-
最小的 最大距离为1:合并AB
AB | C | D | E | |
AB | 0 | A->C=3,B->C=2 ∴{AB}->C=3 | A->D=4,B->D=3 ∴{AB}->D=4 | A->E=5,B->E=4 ∴{AB}->E=5 |
C | A->C=3,B->C=2 ∴{AB}->C=3 | 0 | 1 | 2 |
D | A->D=4,B->D=3 ∴{AB}->D=4 | 1 | 0 | 1 |
E | A->E=5,B->E=4 ∴{AB}->E=5 | 2 | 1 | 0 |
- 最小的 最大距离为1:{C}{D}合并
AB | CD | E | |
AB | 0 | A->C=3,B->C=2 A->D=4,B->D=3 ∴{AB}->{CD}=4 | A->E=5,B->E=4 ∴{AB}->E=5 |
CD | A->C=3,B->C=2 A->D=4,B->D=3 ∴{AB}->{CD}=4 | 0 | C->E=2,D->E=1 ∴{CD}->E=2 |
E | A->E=5,B->E=4 ∴{AB}->E=5 | C->E=2,D->E=1 ∴{CD}->E=2 | 0 |
- 最小的 最大距离为2:{CD}{E}合并
AB | CDE | |
AB | 0 | A->C=3,B->C=2 A->D=4,B->D=3 A->E=5,B->E=4 ∴{AB}->{CDE}=5 |
CDE | A->C=3,B->C=2 A->D=4,B->D=3 A->E=5,B->E=4 ∴{AB}->{CDE}=5 | 0 |
- 最小的 最大距离为5:{AB}{CDE}合并
2.1.3 group average
- 首先每个元素一个类:{A}{B}{C}{D}{E}
- 然后判断两个类之间的平均距离
-
最小的 平均距离为1:合并AB
AB | C | D | E | |
AB | 0 | A->C=3,B->C=2 ∴{AB}->C=(3+2)/2=2.5 | A->D=4,B->D=3 ∴{AB}->D=(4+3)/2=3.5 | A->E=5,B->E=4 ∴{AB}->E=(5+4)/2=4.5 |
C | A->C=3,B->C=2 ∴{AB}->C=(3+2)/2=2.5 | 0 | 1 | 2 |
D | A->D=4,B->D=3 ∴{AB}->D=(4+3)/2=3.5 | 1 | 0 | 1 |
E | A->E=5,B->E=4 ∴{AB}->E=(5+4)/2=4.5 | 2 | 1 | 0 |
- 最小的 平均距离为1:{C}{D}合并
AB | CD | E | |
AB | 0 | A->C=3,B->C=2 A->D=4,B->D=3 ∴{AB}->{CD}=(3+2+4+3)/4=3 | A->E=5,B->E=4 ∴{AB}->E=(5+4)/2=4.5 |
CD | A->C=3,B->C=2 A->D=4,B->D=3 ∴{AB}->{CD}=(3+2+4+3)/4=3 | 0 | C->E=2,D->E=1 ∴{CD}->E=(2+1)/1.5 |
E | A->E=5,B->E=4 ∴{AB}->E=(5+4)/2=4.5 | C->E=2,D->E=1 ∴{CD}->E=(2+1)/1.5 | 0 |
- 最小的 平均距离为2:{CD}{E}合并
AB | CDE | |
AB | 0 | A->C=3,B->C=2 A->D=4,B->D=3 A->E=5,B->E=4 ∴{AB}->{CDE}=(2+3+3+4+4+5)/6 |
CDE | A->C=3,B->C=2 A->D=4,B->D=3 A->E=5,B->E=4 ∴{AB}->{CDE}=(2+3+3+4+4+5)/6 | 0 |
- {AB}{CDE}合并
以group average为例,比如我们需要分成三类,那么当我们合并到{AB}{CD}{E}的时候,就结束迭代
3 不同簇距离计算方式的比较
- 层次聚类具有“富者更富”的特性,这会导致簇的大小不均匀
- 在这方面,single linkage(簇间点最小距离)是最差的策略
- Ward方法(簇内点方差之和)则能给出最规则的簇大小