4. 階層型クラスタリング
• クラスターを階層的に作成する
• 作成した階層図をデンドログラムと呼ぶ
• デンドログラムの下で交わっているクラスタは類似度が高い
(近い)ことを示す
• デンドログラムの上から作成するトップダウン型(Top-down
Clustering, Divisive Clustering)とデンドログラムの下から作成す
るボトムアップ型(Bottom-up Clustering, Agglomerative Clustering)
がある デンドログラム
C 類似度
B
A
F
G E
D
A B C D E F G
(A) 点の配置 (B) 階層型クラスタリングの結果
4
5. 階層型クラスタリング(続)
• ある類似度の閾値を用意し,作成したデンドログラムの枝を切る
• 切られた枝に属するサンプルをクラスタとする.
• どうやって,デンドログラムを作ろう?
グループ1
閾値
C
B
A
グループ3 グループ2
F
A B C D E F G G E
D
グループ1 グループ2 グループ3
(C) グループの生成 (D) 作成されたクラスタ
5
7. 単連結法
• ボトムアップ型クラスタリングの一種
d(x, y) : 点 x, y 間のユークリッド距離
クラスタ Ci , Cj の距離を
Dmin (Ci , Cj ) = min {d(x, y) | x ∈ Ci , y ∈ Cj }
で計測する
1. 全ての点が別々のクラスタに属していると仮定する
2. 最も近いクラスタの対を併合し,1つのクラスタとする
3. 2の作業を,全点が1つのクラスタになるまで,繰り返す
7
8. 1 C C C
B B B
A 3 A 5 A
E 4 E E
2
F F F
G G G
D D D
(A) B,C及びD,Fの併合 (B) 点A,Eのクラスターへの併合 (C) 大きなクラスターの生成
6 (A)∼(C)中の数値(1∼5)は、
左記のクラスターの階層構造の
5 1∼5と対応している。
4 (A)∼(C)中の線はクラスターの併合に
その距離を採用した事を示す
3 2
1
A B C E D F G
(D) 単連結法で生成したデンドログラム 8
9. ボトムアップ型の手順(1/2)
• ボトムアップ型は全て以下の手順で実行する
4.5. 単 連実装を考慮して,手順が書かれていることに注意
結 法
• 59
(1) 与えられた N 点を x1 , . . . , xN とし,それぞれの点を 1 点が属するクラスター
とみなす.x1 , . . . , xN が構成するクラスターを C1 , . . . , CN とする.
(2) n = N とする.n は,残っているクラスターの数を表す.
(3) 以下の手順を n = 1(全てが一つのクラスター)となるまで繰り返す
(a) クラスター C1 , . . . , Cn の中で最も近いクラスターを探し Ci , Cj とする
(i < j )
1. 2 3 4 5 6 7
(b) Ci と Cj を併合し,Ci を併合したものに置き換える.
(c) 各クラスター間の距離を更新する.
(d) Cj = Cn とする.また,クラスターが減ったので n = n − 1 とする.
図 4.8 ボトムアップ型クラスタリングの手順
9
10. (1) 与えられた N 点を x1 , . . . , xN とし,それぞれの点を 1 点が属するクラスター
とみなす.x1 , . . . , xN が構成するクラスターを C1 , . . . , CN とする.
ボトムアップ型の手順(2/2)
(2) n = N とする.n は,残っているクラスターの数を表す.
(3) 以下の手順を n = 1(全てが一つのクラスター)となるまで繰り返す
(a) クラスター C1 , . . . , Cn の中で最も近いクラスターを探し Ci , Cj とする
(i < j ).
(b) Ci と Cj を併合し,Ci を併合したものに置き換える.
(c) 各クラスター間の距離を更新する.
(d) Cj = Cn とする.また,クラスターが減ったので n = n − 1 とする.
図 4.8 ボトムアップ型クラスタリングの手順
1 2 3 4 5 6 7
(a)
1 2 3 4 5 6 7
(b)
1 C C C
B 1 2 3
B 4 5 6 7
B
(d)
A 3 A 5 A
E E 10 E
11. 単連結法の距離行列の更新
(A)クラスター間の距離 (B) 隣接クラスターと距離
A B,C D,F E G
A 1.2 2.3 1.9 4.1 B,C 1.2
B,C 1.2 3.2 2.0 4.0 A 1.2
D,F 2.3 3.2 2.2 3.5 E 2.2
C
E 1.9 2.0 2.2 2.5 A 1.9
B
G 4.1 4.0 3.5 2.5 E 2.5
A
E AとB,Cの併合
F
(C)併合後のクラスター間距離 (D) 隣接クラスターと距離
G
D A,B,C D,F E G
A,B,C 2.3 1.9 4.0 E 1.9
D,F 2.3 2.2 3.5 E 2.2
E 1.9 2.2 2.5 A,B,C 1.9
G 4.0 3.5 2.5 E 2.5
11 ※灰色は更新があった所
13. や,細胞内のパスウエイ情報35, 48) などグラフで表されるデータの増加も見込ま
単連結法とグラフ
れるため,最小全域木を求めるアルゴリズムであるクラスカルのアルゴリズム
•(Kruskal’s Algorithm) を導入することで,最小全域木と単連結法の関連を紹
単連結法は,最小全域木(Minimum Spanning Tree)と関連が深い.
介する.
• 最小全域木
定義 4.2 無向連結グラフ G = (V, E)(V は頂点集合,E は辺の集合) に対し,
T ⊆ G なる G の部分グラフ T を考える.T に閉路が無く,全頂点が結ばれ
ている(つまり,G の頂点集合 V と T の頂点集合は一致する)時,T を全域
木 (Spanning Tree) と呼ぶ.このグラフは木となる.ここで,グラフ G の各
辺 (u, v) ∈ E に重み w(u, v) が定義されているとする.全域木となる G の部分
グラフの内,辺の重みの和 (u,v)∈T w(u, v) が最小になるような全域木 T を,
G の最小全域木 (Minimum Spanning Tree) と言う.
図 4.13(A) に与えられたグラフを示す.このグラフは図 4.9(P. 59) において
単連結法を利用してクラスタリングを行ったものと同一の点を元に,全ての2
点間に辺を張ることで構成されている.辺の重みは辺の長さであるとする.こ
のグラフから求まる最小全域木を図 4.13(B) に示す.図 4.13(B) 上の各辺には,
距離の短い順に番号が振られている.1 と書かれた辺 BC が最も短く,6 と書
G 全域木
かれた辺 GE が最も長い.この最小全域木と,図 4.9(D)(P. 59)のデンドロ
13
14. 最小全域木
G 全域木
辺の長さを重みとする.
w(u,v)は点u,v間の距離
最小全域木は,全域木の中で
辺の距離の和が最小になるもの
14
15. Kruscal(クラスカル)のアルゴリズム
72 第 4 章 クラスタリング
(1) 各辺に実数の重みが与えられた連結グラフ G = (V, E)(V は頂点集合,E は
辺集合)を考える.
(2) A を空集合とする.A には今後の手順で最小全域木の辺が順に入る.
(3) V の頂点が全て別のグループに属していると考える (各グループは,1 点のみ
が属する)
(4) 重みの少ない辺から順に,以下を繰り返す (選択した辺を (u, v) ∈ E とする)
(a) 異なるグループなら,A を A ∪ {(u, v)} で置き換え,u と v のグループ
を併合する.
(b) u と v が同じグループに属すなら,何もせず次に重みの小さい辺を選択
する
(5) 全ての辺について繰り返しが終わった後で出来る A は最小全域木の辺を構成
している.
C C C
B B
図B
4.14 クラスカルのアルゴリズムで最小全域木 A を求める手順
A A A
E E E
C e V-C
F F F
G G G
D D D
A={} A={(B,C),(D,F)} A={(B,C),(D,F),(A,B)}
{A}, {B}, {C}, {D}, {E}, {F} {A}, {B,C}, {D,F}, {E}
e’ {A, B,C}, {D,F}, {E}
15
16. C C
B
1
B
A
3
A
E E 4
F
6 5 F
2
G G
D D
(A) 与えられたグラフ.全点間に辺が (B) (A)の最小全域木
張られ,距離に比例した重みが付いている.
6
5
4 単連結法のデンドログラムと
3 最小全域木は対応している
2
1
A B C E D F G
(C) 単連結法のデンドログラム
16
17. C C C
B B B
A A A
E E E
F F F
G G G
D D D
(A) 全点に対し距離を計測 (B) 最も近い点Aを選択。 (C) 最も短い辺を選択(辺AB)。
点Eより点Aに近い点B,Cは 新たにTに含まれた点Bから
関連する点と距離を更新 距離の更新
C C
B B
A
A
E E ヒープQに含まれる
頂点からの辺
F F
最小全域木T
G G
D D
(D) 点C, F をTに追加 (E) 求められた最小全域木 フィボナッチヒープを用いると
O(E + V log V )で最小全域木が求まる.
17
18. 完全連結法
クラスタ間
の距離
クラスターX クラスターY
• ボトムアップ型クラスタリングの一種
d(x, y) : 点 x, y 間のユークリッド距離
クラスタ Ci , Cj の距離を
Dmax (Ci , Cj ) = max{d(x, y)|x ∈ Ci , y ∈ Cj }
で計測する
1. 全ての点が別々のクラスタに属していると仮定する
2. 最も近いクラスタの対を併合し,1つのクラスタとする
3. 2の作業を,全点が1つのクラスタになるまで,繰り返す
18
19. 1 3 C C
C
B B B
A A A
E 5
2 4
E
F E F F
G
G G
D D D
(A) B,C及びD,Fの併合 (B) 点A,Eの併合 (C) 点Gのクラスタへの併合
5 (A)∼(C)中の数値(1∼5)は,
(D)のクラスタの階層構造の
1∼5と対応している.点と点の
4
間の線は,クラスター間の距離を
3 表している.
2
1
A B C D F E G
(D)完全連結法で作成したクラスタ
19
20. クラスター併合による,隣接クラスターの変化
(A)クラスター間の距離 (B) 隣接クラスターと距離
A B,C D,F E G
A 1.3 3.0 1.9 4.1 B,C 1.3
B,C 1.3 4.1 2.5 4.5 A 1.3
D,F 3.0 4.1 2.3 4.0 E 2.3
E 1.9 2.5 2.3 2.5 A 1.9
G 4.1 4.5 4.0 2.5 E 2.5
AとB,Cの併合
(C)併合後のクラスター間距離 (D) 隣接クラスターと距離
A,B,C D,F E G
A,B,C 4.1 2.5 4.5 E 2.5
D,F 4.1 2.3 4.0 E 2.3
E 2.5 2.3 2.5 D,F 2.3
G 4.5 4.0 2.5 E 2.5 20
21. C
C
B B
A A
E E
単連結法
F F
G G
D
D
(A) Eに最も近いクラスターは点A (B) AとB,Cが併合しても,Eの隣接クラス
ターが点Aが属するクラスターであること
完全連結法
と,そのクラスターまでの距離に変化なし
C
B
(C) AとB,Cが併合したことでEに最も近いクラスターは
A D,Fとなる(CE間よりDE間の距離が短い).クラスター
の併合によってEの隣接クラスターと距離が変化する
E 可能性がある.
F
G
D 完全連結法では,単純には,隣接クラスタの更新で
O(N^2)必要なので,全体として時間計算量O(N^3)が必
21
要
23. duces the clusters shown in Figure 12,
whereas the complete-link algorithm ob-
単連結法と完全連結法の得手不得手
S
tains the clustering shown in Figure 13.
Data Clustering
The clusters obtained by the complete-
• 277
i
X
m2 link algorithm are more compact than
X2
i those obtained by the single-link algo-
l
a rithm; the cluster labeled 1 obtained
r 2 2 using the 1single-link algorithm 2is elon-
1 11 2
i 1 111 2 2 22 2 2 2 22 2
t 1 1 11 2 2 gated because 1of the noisy patterns la-
1 1 1 2
2
2
2 2 2
y 11
111 1 *** * * * * ** 2 2 2 beled “*”. 1 1 1 1 single-link * algorithm 2is
11
The * * * * * * * * 2 2
1 2 2 1 2 2
1 1 1 1
1 2 more versatile 1than the complete-link
1
1 1 1
1 2
2
1 2
algorithm, otherwise. For example, the
single-link algorithm can extract the
concentric clusters shown in Figure 11,
A B C D E F***はノイズの点 G
but the complete-link algorithm cannot.
Figure 10. The dendrogram obtained using X1 However, from a pragmatic viewpoint, it 1 X
単連結法
the single-link algorithm. 完全連結法
Figure 12. A single-link clustering of a pattern has been observed that clustering of a pat-
Figure 13. A complete-link the complete-
ノイズに引きずられている ノイズがあっても分離
tern set containing two classes (1 and 2) con-
set containing two classes (1 and 2) connected by link algorithm produces more useful hi-
Y
a chain of noisy patterns (*). erarchies inchain of noisy patterns (*).
nected by a
many applications than the
1 single-link algorithm [Jain and Dubes
1 1988].
(3) The output of the algorithm is a well-separated, chain-like, and concen-
1
nested hierarchy of graphs which tric clusters, whereas a typicalClus-
2 2 1 Agglomerative Single-Link parti-
1
2 単連結法では分離できて
can be cut at a desired dissimilarity tering Algorithm such as the k -means
tional algorithm
2 2
level forming a partition (clustering) algorithm works well only on data sets
1 完全連結法では分離できない例
2
identified by simply connected com- (1) Place isotropic clustersits own clus-
1 having each pattern in [Nagy 1968].
ponents in the 1 corresponding graph. On theConstruct a list of interpattern
1 ter. other hand, the time and space
complexities for all 1992] ofunordered
distances [Day distinct the parti-
Agglomerative Complete-Link Clus- 23 tional algorithms are typically lower
X pairs of patterns, and sort this list
24. その他の指標
• 計算量とクラスタ作成にかかる時間の最適化
• Average Group Linkage(群平均法)
• クラスタ間の距離は,クラスタを跨ぐ全点対の距離の平均
1
D(Ci , Cj ) = D(x1 , x2 )
|Ci ||Cj |
x1 ∈Ci x2 ∈Cj
• Ward’s Method
•クラスタの中心までの距離の二乗和を最小化する
D(Ci , Cj ) = E(Ci ∪ Cj ) − E(Ci ) − E(Cj )
where E(Ci ) = (d(x, ci ))2 ,
x∈Ci
1
ci = x
|Ci |
x∈Ci
Average Group Linkage 24
Ward’s Method
29. DIANA法(1)
• クラスター分割の指標としてV(i,S)を定義する.
V:与えられたクラスタの点全体集合
S(⊂V): 分割後の新たなクラスタ候補(スプリンターグループ)
d(i, j) : 点iと点jの距離
Sに新たに点i∈V-Sを加える判断基準として,指標V(i,S)を定義する
V (i, S)
1
|V |−1 j∈V −{i} d(i, j) if S = φ
= 1
|V −S|−1 j∈S∪{i} d(i, j) − 1
|S| j∈S d(i, j) if S = φ
V(i,S)は,点iのS内の点までの平均距離 - (V-S)内の点までの平均距
離を表す.後ほど,実際に計算してみる.
30. DIANA法(2): 手順
C A
B B 1.2 B
A C 1.3 1.0 C
E D 3.0 4.0 4.1 D
F E 1.9 2.0 2.5 2.3 E
G F 2.3 3.2 3.4 1.1 2.2 F
D G 4.1 4.0 4.5 3.5 2.5 4.0
(A) クラスタリングを行う7個の点 (B) 7点の間の距離
6 第 4 章 クラスタリング
(1) 初期化: S を空集合 {} とする.S をスプリンターグループと呼ぶ
(2) V (i, S) を最大にする i ∈ V − S を発見する.
(3) V (i, S) > 0 ならば i を S に追加し,(2) に戻る
(4) V (i, S) ≤ 0 ならば S に近い i が取れないので,点の追加を終了し (5) へ.
(5) 分割した V ,V − S それぞれに対して再帰的にスプリンターグループを発見
してゆく
図 4.24 ダイアナ法によるクラスター分割の手順
31. DIANA法(3): 1点目の選択(1)
C A C
B B 1.2 B B
A C 1.3 1.0 C A
E D 3.0 4.0 4.1 D E
F E 1.9 2.0 2.5 2.3 E F
F 2.3 3.2 3.4 1.1 2.2 F G
G
D G 4.1 4.0 4.5 3.5 2.5 4.0 D
(A) クラスタリングを行う7個の点 (B) 7点の間の距離 (C) スプリンターグループとして
点Gを選んだ場合
V (i, S)
1
|V |−1 j∈V −{i} d(i, j) if S = φ
= 1
|V −S|−1 j∈S∪{i} d(i, j) − 1
|S| j∈S d(i, j) if S = φ
V (G, {})
= 1/6(d(G, A) + d(G, B) + d(G, C) + d(G, D) + d(G, E) + d(G, F))
= 1/6(4.1 + 4.0 + 4.5 + 3.5 + 2.5 + 4.0) = 3.77
32. DIANA法(4): 1点目の選択(2)
A
C
B 1.2 B B
C 1.3 1.0 C
A
D 3.0 4.0 4.1 D E
E 1.9 2.0 2.5 2.3 E F
F 2.3 3.2 3.4 1.1 2.2 F
G
G 4.1 4.0 4.5 3.5 2.5 4.0 D
(B) 7点の間の距離 (D) スプリンターグループとして
点Eを選んだ場合
V (i, S)
1
|V |−1 j∈V −{i} d(i, j) if S = φ
= 1
|V −S|−1 j∈S∪{i} d(i, j) − 1
|S| j∈S d(i, j) if S = φ
V (E, {})
= 1/6(d(E, A) + d(E, B) + d(E, C) + d(E, D) + d(E, F) + d(E, G))
= 1/6(1.9 + 2.0 + 2.5 + 2.3 + 2.2 + 2.5) = 2.23
33. DIANA法(5): 1点目の選択(3)
• V(i, {})の計算を全ての点に行うと
V (A, {}) = 13.8/6 = 2.3, V (B, {}) = 15.4/6 = 2.57,
V (C, {}) = 16.8/6 = 2.8, V (D, {}) = 18.0/6 = 3.0,
V (E, {}) = 2.23, V (F, {}) = 16.2/6 = 2.7
V (G, {}) = 3.77
• 以上から,値の最も大きいのはV(G, {}).
• V(G, {}) > 0 なので,点GをスプリンターグループSに追加
• S = {G}
• 更に,新しくSに追加する点を探索する.
34. DIANA法(6): 2点目の選択(1)
C A
B B 1.2 B
A C 1.3 1.0 C
E D 3.0 4.0 4.1 D
F E 1.9 2.0 2.5 2.3 E
D F 2.3 3.2 3.4 1.1 2.2 F
G
G 4.1 4.0 4.5 3.5 2.5 4.0
V (i, S)
1
|V |−1 j∈V −{i} d(i, j) if S = φ
= 1
|V −S|−1 j∈S∪{i} d(i, j) − 1
|S| j∈S d(i, j) if S = φ
V (A, {G})
= 1/5(d(A, B) + d(A, C)+
d(A, D) + d(A, E) + d(A, F)) − 1/1(d(A, G))
= 1/5(1.2 + 1.3 + 3.0 + 1.9 + 2.3) − 4.1 = −2.16
35. DIANA法(7): 2点目の選択(2)
• 他の全ての点について計算
V (B, {G}) = 1/5(1.2 + 1.0 + 4.0 + 2.0 + 3.2) − 4.0 = −1.72
V (C, {G}) = 1/5(1.3 + 1.0 + 4.1 + 2.5 + 3.4) − 4.5 = −2.04
V (D, {G}) = 1/5(3.0 + 4.0 + 4.1 + 2.3 + 1.1) − 3.5 = −0.6
V (E, {G}) = 1/5(1.9 + 2.0 + 2.5 + 2.3 + 2.2) − 2.5 = −0.32
V (F, {G}) = 1/5(2.3 + 3.2 + 3.4 + 1.1 + 2.2) − 4.0 = −1.56
• 最も値の大きいものはV(D, {G})
• しかし,V(D, {G}) < 0なので,採用しない.
C
B
A
E
F
G D