datamining 8th hclustering
TRANSCRIPT
データマイニングクラスタリング(II) 階層型クラスタリング
クラスタリング• 類似した挙動を示すサンプルを見つけ,グループ化する• グループをクラスターと呼ぶ
4.1. 距 離 47
4.1 距 離クラスタリングは,似たような発現を示す遺伝子,もしくは,サンプルを集めグループを作成する手法であり,多量の遺伝子発現量を採取し,解析する際に,頻繁に用いられる手法である.表 4.1にクラスタリングで解析するデータ例として,4遺伝子の発現量を環境の変化(たとえば,温度変化を起こした後)5つの時間 0分,10分,20分,30分,40分で採取した例を示す.遺伝子発現プロファイルでは,4つの遺伝子というのは,非常に少なく,マイクロアレイなどの観測技術の進歩により,一般に数千個の遺伝子を同時に観測することが多いため,遺伝子は数千個並ぶが,表 4.1では,説明の都合上,4遺伝子のみの
サンプルの時間 10分 20分 30分 40分遺伝子 1 0.74 0.76 1.34 1.75
遺伝子 2 2.01 2.62 0.87 0.69
遺伝子 3 0.87 0.60 1.83 1.90
遺伝子 4 1.73 1.83 0.96 0.93表 4.1 発現プロファイルの例。それぞれの値は,10分,20分,30
分,40分の 4つの時間で,各遺伝子が 0分のサンプルに対して,何倍の発現を有しているかを示す.
図 4.1 時間経過に応じて発現量が上昇傾向の遺伝子と下降傾向の遺伝子の 2個のクラスターに分かれた例
経過時間 10分 20分 30分 40分遺伝子1 0.74 0.76 1.34 1.75遺伝子2 2.01 2.62 0.87 0.69遺伝子3 0.87 0.60 1.83 1.90遺伝子4 1.73 1.83 0.96 0.93
2
クラスタリング(続)• 2つの方法• 階層型クラスタリング• クラスターに階層構造を付ける• 非階層的クラスタリング• 予めグループの数を定めておく
• クラスタリングで注意すべき点• 点間の距離(サンプル間の距離)• ユークリッド距離?マンハッタン距離?相関係数?• グループ間の距離• グループの境界を決める教師がない:教師無し学習と呼ばれる
3
階層型クラスタリング• クラスターを階層的に作成する• 作成した階層図をデンドログラムと呼ぶ• デンドログラムの下で交わっているクラスタは類似度が高い(近い)ことを示す• デンドログラムの上から作成するトップダウン型(Top-down
Clustering, Divisive Clustering)とデンドログラムの下から作成するボトムアップ型(Bottom-up Clustering, Agglomerative Clustering)がある
A B C D E F
A
BC
DEF
G
G(A) 点の配置 (B) 階層型クラスタリングの結果
類似度
デンドログラム
4
階層型クラスタリング(続)• ある類似度の閾値を用意し,作成したデンドログラムの枝を切る• 切られた枝に属するサンプルをクラスタとする.
• どうやって,デンドログラムを作ろう?
A B C D E F G
(C) グループの生成
閾値
グループ1 グループ2 グループ3
A
BC
DEF
G
(D) 作成されたクラスタ
グループ1
グループ2グループ3
5
ボトムアップ型クラスタリング• デンドログラムの下側から作っていく方式• クラスタ間の距離を測る方式により,種類が分かれる• 単連結法:クラスタ間の距離を,最も近い点の距離とする• 完全連結法:クラスタ間の距離を,最も遠い点の距離とする• 群平均法:クラスタ間の距離を,全点対の距離の平均で測る• ウォード法:各点の属するクラスターの重心までの距離の2乗和で測る
クラスターX クラスターY
クラスタ間の距離
(A) 単連結法での距離
クラスターX クラスターY
クラスタ間の距離
(B) 完全連結法での距離6
単連結法• ボトムアップ型クラスタリングの一種
1. 全ての点が別々のクラスタに属していると仮定する2. 最も近いクラスタの対を併合し,1つのクラスタとする3. 2の作業を,全点が1つのクラスタになるまで,繰り返す
Dmin(Ci, Cj) = min {d(x,y) | x ∈ Ci,y ∈ Cj}
x,yd(x,y) : 点 間のユークリッド距離
Ci, Cj の距離をクラスタ
で計測する
7
E
(A) B,C及びD,Fの併合 (B) 点A,Eのクラスターへの併合
(D) 単連結法で生成したデンドログラム
(A)~(C)中の数値(1~5)は、左記のクラスターの階層構造の1~5と対応している。(A)~(C)中の線はクラスターの併合にその距離を採用した事を示す
(C) 大きなクラスターの生成
A
BC
D
E
F
G
A
BC
D
F
G
A
BC
D
E
F
G
A B C DE F G
4
3
65
21
1
2
34
5
8
ボトムアップ型の手順(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).
(b) Ci と Cj を併合し,Ci を併合したものに置き換える.(c) 各クラスター間の距離を更新する. (d) Cj = Cn とする.また,クラスターが減ったので n = n ! 1とする.
図 4.8 ボトムアップ型クラスタリングの手順
E
(A) B,C!"D,F#$% (B) &A,E#'()*+,#$%
(D) -./0123456789:(;
<=>?<@>A#BC<D?E>FGHI#'()*+#JKLM#D?ENOP4QRST<=>?<@>A#UF'()*+#$%VW#XYZ[\45]Z^_
(C) `ab'()*+#23
A
BC
D
E
F
G
A
B
C
D
F
G
A
B
C
D
E
F
G
A B C DE F G
4
3
6
5
21
1
2
3
45
図 4.9 単連結法によるデンドログラムの生成
1 2 3 4 5 6 7
9
ボトムアップ型の手順(2/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).
(b) Ci と Cj を併合し,Ci を併合したものに置き換える.(c) 各クラスター間の距離を更新する. (d) Cj = Cn とする.また,クラスターが減ったので n = n ! 1とする.
図 4.8 ボトムアップ型クラスタリングの手順
E
(A) B,C!"D,F#$% (B) &A,E#'()*+,#$%
(D) -./0123456789:(;
<=>?<@>A#BC<D?E>FGHI#'()*+#JKLM#D?ENOP4QRST<=>?<@>A#UF'()*+#$%VW#XYZ[\45]Z^_
(C) `ab'()*+#23
A
BC
D
E
F
G
A
B
C
D
F
G
A
B
C
D
E
F
G
A B C DE F G
4
3
6
5
21
1
2
3
45
図 4.9 単連結法によるデンドログラムの生成
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
(a)
(b)
(d)10
単連結法の距離行列の更新A B,C D,F E G
A 1.2 2.3 1.9 4.1
B,C 1.2 3.2 2.0 4.0
D,F 2.3 3.2 2.2 3.5
E 1.9 2.0 2.2 2.5
G 4.1 4.0 3.5 2.5
B,C 1.2
A 1.2
E 2.2
A 1.9
E 2.5
(B) 隣接クラスターと距離
A,B,C D,F E G
A,B,C 2.3 1.9 4.0
D,F 2.3 2.2 3.5
E 1.9 2.2 2.5
G 4.0 3.5 2.5
E 1.9
E 2.2
A,B,C 1.9
E 2.5
AとB,Cの併合
(A)クラスター間の距離
(D) 隣接クラスターと距離(C)併合後のクラスター間距離
※灰色は更新があった所
EA
BC
D
F
G
11
単連結法の計算量• 距離行列更新に伴う計算量• CiとCjを併合しCi’となる場合を考える• Ci’からクラスタCkへの距離• CiとCkの距離か,CjとCkの距離の内,短いほうを選択• クラスタ間の距離の更新• クラスタは高々N個なので,O(N)回の比較• 空間計算量は,O(N^2)
• 各クラスタに隣接するクラスタの更新• 隣接するクラスタがCjの場合は,Ci’ に変更• 以上より,1度の併合では時間計算量O(N),空間計算量O(N^2)が必要• クラスタの併合はN-1回起こり,デンドログラムは空間計算量O(N)
で保存可能. 全体では空間計算量O(N^2), 時間計算量O(N^2)
12
単連結法とグラフ• 単連結法は,最小全域木(Minimum Spanning Tree)と関連が深い.• 最小全域木
70 第 4章 クラスタリングログラムは,左側が木の上を,右側が葉に近いほうを示している.単連結法の説明の例(P.59,図 4.9)では,2次元上の点で示していたが,今回用いるデータは 4次元上のデータであり,今回示したプログラムでは,データの次元数に関わらずデンドログラムを求めることが可能である.
4.5.3 最 小 全 域 木単連結法の解法は辺に重みを与えられたグラフから,最小全域木(Minimum
Spanning Tree, MST)を求める問題と密接な関係がある.今後の生命科学では,数量化したデータである発現量データだけでなく,酵母ツーハイブリッド法など47, 79) による実験により,どのたんぱく質が相互作用を起こすかの記述や,細胞内のパスウエイ情報35, 48)などグラフで表されるデータの増加も見込まれるため,最小全域木を求めるアルゴリズムであるクラスカルのアルゴリズム(Kruskal’s Algorithm)を導入することで,最小全域木と単連結法の関連を紹介する.
定義 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と書かれた辺 GEが最も長い.この最小全域木と,図 4.9(D)(P. 59)のデンドログラムとの対応を見よう.まず,距離が最も近く 1番目,2番目に併合するクラスターである点 Bと C,点 Dと Fの間には,最小全域木でも 1番目,2番目に短い線が引かれている.次に,デンドログラムでは,点Aのクラスターと
G 全域木13
最小全域木
G 全域木
辺の長さを重みとする.w(u,v)は点u,v間の距離
最小全域木は,全域木の中で辺の距離の和が最小になるもの
14
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は最小全域木の辺を構成している.
図 4.14 クラスカルのアルゴリズムで最小全域木 Aを求める手順
C V - C
e’
e
図 4.15 全域木 T(線で引かれた木)に辺 eを加えた図.eを加えたことで閉路が作られる.C に 5点含まれ,T #C に 4点含まれている(点線の円で囲んだ部分).
えられている.頂点 V を C と V ! C の 2つの集合に分割し,C から V ! C
に引かれた辺の内,重みが最小の辺 e " E は,T に含まれる.
証明: 背理法で証明する.重み最小の辺 eが T に含まれないと仮定する.T にeを加えると,T は必ず閉路を含み,T が全域木であることから C と V ! C
を結ぶ e以外の T に属する辺 e!が存在する.図 4.15に eを加えたことで T が閉路を含む様子と,C と V ! C をまたぐ T に含まれる辺 e! を図示した.
T から e! を切り,eを加えた T ! を考える.T ! は全域木であり,仮定より e!
の重みは eより大きいはずなので T より重みの和が小さくなる.これは T が
Kruscal(クラスカル)のアルゴリズム
A
BC
D
E
F
G
A
BC
D
E
F
G
A
BC
D
E
F
GA={} A={(B,C),(D,F)}
{A}, {B}, {C}, {D}, {E}, {F} {A}, {B,C}, {D,F}, {E}A={(B,C),(D,F),(A,B)}{A, B,C}, {D,F}, {E}
15
A
BC
D
E
F
G6
4
5
3
2
1
A B C DE F G
4
3
65
21
A
BC
D
E
F
G
(A) 与えられたグラフ.全点間に辺が張られ,距離に比例した重みが付いている.
(B) (A)の最小全域木
(C) 単連結法のデンドログラム
単連結法のデンドログラムと最小全域木は対応している
16
A
BC
D
E
F
G
AB
C
D
E
F
G
AB
C
D
E
F
G
AB
C
D
E
F
G
(A) 全点に対し距離を計測 (B) 最も近い点Aを選択。点Eより点Aに近い点B,Cは関連する点と距離を更新
(C) 最も短い辺を選択(辺AB)。新たにTに含まれた点Bから距離の更新
ヒープQに含まれる頂点からの辺
最小全域木T
AB
C
D
E
F
G
(D) 点C, F をTに追加 (E) 求められた最小全域木 フィボナッチヒープを用いるとO(E + V log V )で最小全域木が求まる.
17
完全連結法
• ボトムアップ型クラスタリングの一種
1. 全ての点が別々のクラスタに属していると仮定する2. 最も近いクラスタの対を併合し,1つのクラスタとする3. 2の作業を,全点が1つのクラスタになるまで,繰り返す
クラスターX クラスターY
クラスタ間の距離
x,yd(x,y) : 点 間のユークリッド距離Ci, Cj の距離をクラスタ
で計測するDmax(Ci, Cj) = max{d(x,y)|x ∈ Ci,y ∈ Cj}
18
(A) B,C及びD,Fの併合 (B) 点A,Eの併合 (C) 点Gのクラスタへの併合
A B C D F E G
12
43
5
(D)完全連結法で作成したクラスタ
(A)~(C)中の数値(1~5)は,(D)のクラスタの階層構造の1~5と対応している.点と点の間の線は,クラスター間の距離を表している.
E
A
BC
D
E
F
G
A
BC
D
F
G
A
BC
D
EF
G
1
2
3
45
19
A B,C D,F E GA 1.3 3.0 1.9 4.1B,C 1.3 4.1 2.5 4.5D,F 3.0 4.1 2.3 4.0E 1.9 2.5 2.3 2.5G 4.1 4.5 4.0 2.5
A,B,C D,F E G
A,B,C 4.1 2.5 4.5D,F 4.1 2.3 4.0
E 2.5 2.3 2.5
G 4.5 4.0 2.5
AとB,Cの併合
B,C 1.3A 1.3E 2.3A 1.9E 2.5
E 2.5E 2.3
D,F 2.3
E 2.5
(A)クラスター間の距離 (B) 隣接クラスターと距離
(D) 隣接クラスターと距離(C)併合後のクラスター間距離
クラスター併合による,隣接クラスターの変化
20
(A) Eに最も近いクラスターは点A
(C) AとB,Cが併合したことでEに最も近いクラスターはD,Fとなる(CE間よりDE間の距離が短い).クラスターの併合によってEの隣接クラスターと距離が変化する可能性がある.
(B) AとB,Cが併合しても,Eの隣接クラスターが点Aが属するクラスターであることと,そのクラスターまでの距離に変化なし
単連結法
完全連結法
A
BC
D
E
F
G
EA
BC
D
F
G
E
A
BC
D
F
G完全連結法では,単純には,隣接クラスタの更新でO
(N^2)必要なので,全体として時間計算量O(N^3)が必要21
{G}, 2.5
{B,C}, 2.5 {D,F}, 2.3
{A},1.9
{G}, 2.5
{D,F}, 2.3
{A},1.9 {B,C}, 2.5
{A, B,C}, 2.5
{G}, 2.5
{D,F}, 2.3
{A, B,C}, 2.5
(B) 併合する2つのクラスターを削除
(A) 点Eのクラスターの隣接 クラスターに関するヒープ
(C)併合するクラスターを 削除したヒープ
(D) 併合したクラスター
(E) 更新したヒープ
削除
挿入
併合
ヒープでクラスタ間距離を保持することで,計算量を O(N^2 log N)に落とせる.( 一回のヒープの挿入,削除はO(log N) )
22
単連結法と完全連結法の得手不得手
(3) The output of the algorithm is anested hierarchy of graphs whichcan be cut at a desired dissimilaritylevel forming a partition (clustering)identified by simply connected com-ponents in the corresponding graph.
Agglomerative Complete-Link Clus-tering Algorithm
(1) Place each pattern in its own clus-ter. Construct a list of interpatterndistances for all distinct unorderedpairs of patterns, and sort this listin ascending order.
(2) Step through the sorted list of dis-tances, forming for each distinct dis-similarity value dk a graph on thepatterns where pairs of patternscloser than dk are connected by agraph edge. If all the patterns aremembers of a completely connectedgraph, stop.
(3) The output of the algorithm is anested hierarchy of graphs whichcan be cut at a desired dissimilaritylevel forming a partition (clustering)identified by completely connectedcomponents in the correspondinggraph.
Hierarchical algorithms are more ver-satile than partitional algorithms. Forexample, the single-link clustering algo-rithm works well on data sets contain-ing non-isotropic clusters including
well-separated, chain-like, and concen-tric clusters, whereas a typical parti-tional algorithm such as the k-meansalgorithm works well only on data setshaving isotropic clusters [Nagy 1968].On the other hand, the time and spacecomplexities [Day 1992] of the parti-tional algorithms are typically lowerthan those of the hierarchical algo-rithms. It is possible to develop hybridalgorithms [Murty and Krishna 1980]that exploit the good features of bothcategories.
Hierarchical Agglomerative Clus-tering Algorithm
(1) Compute the proximity matrix con-taining the distance between eachpair of patterns. Treat each patternas a cluster.
(2) Find the most similar pair of clus-ters using the proximity matrix.Merge these two clusters into onecluster. Update the proximity ma-trix to reflect this merge operation.
(3) If all patterns are in one cluster,stop. Otherwise, go to step 2.
Based on the way the proximity matrixis updated in step 2, a variety of ag-glomerative algorithms can be designed.Hierarchical divisive algorithms startwith a single cluster of all the givenobjects and keep splitting the clustersbased on some criterion to obtain a par-tition of singleton clusters.
1 1
111
1
1 1
1
11
11 1
1
2
22
22
2
2
2
2 2
2
X
1
1
11
1
1 2
2
2
2
2
2
2
* * * * * * * * *
1
X2
Figure 12. A single-link clustering of a patternset containing two classes (1 and 2) connected bya chain of noisy patterns (*).
1 1
111
1
1 1
1
11
11 1
1
2
22
22
2
2
2
2 2
2
X
1
1
11
1
1 2
2
2
2
2
2
2
* * * * * * * * *
1
X2
Figure 13. A complete-link clustering of a pat-tern set containing two classes (1 and 2) con-nected by a chain of noisy patterns (*).
Data Clustering • 277
ACM Computing Surveys, Vol. 31, No. 3, September 1999
単連結法ノイズに引きずられている
完全連結法ノイズがあっても分離
***はノイズの点
ters is the minimum of the distancesbetween all pairs of patterns drawnfrom the two clusters (one pattern fromthe first cluster, the other from the sec-ond). In the complete-link algorithm,the distance between two clusters is themaximum of all pairwise distances be-
tween patterns in the two clusters. Ineither case, two clusters are merged toform a larger cluster based on minimumdistance criteria. The complete-link al-gorithm produces tightly bound or com-pact clusters [Baeza-Yates 1992]. Thesingle-link algorithm, by contrast, suf-fers from a chaining effect [Nagy 1968].It has a tendency to produce clustersthat are straggly or elongated. Thereare two clusters in Figures 12 and 13separated by a “bridge” of noisy pat-terns. The single-link algorithm pro-duces the clusters shown in Figure 12,whereas the complete-link algorithm ob-tains the clustering shown in Figure 13.The clusters obtained by the complete-link algorithm are more compact thanthose obtained by the single-link algo-rithm; the cluster labeled 1 obtainedusing the single-link algorithm is elon-gated because of the noisy patterns la-beled “*”. The single-link algorithm ismore versatile than the complete-linkalgorithm, otherwise. For example, thesingle-link algorithm can extract theconcentric clusters shown in Figure 11,but the complete-link algorithm cannot.However, from a pragmatic viewpoint, ithas been observed that the complete-link algorithm produces more useful hi-erarchies in many applications than thesingle-link algorithm [Jain and Dubes1988].
Agglomerative Single-Link Clus-tering Algorithm
(1) Place each pattern in its own clus-ter. Construct a list of interpatterndistances for all distinct unorderedpairs of patterns, and sort this listin ascending order.
(2) Step through the sorted list of dis-tances, forming for each distinct dis-similarity value dk a graph on thepatterns where pairs of patternscloser than dk are connected by agraph edge. If all the patterns aremembers of a connected graph, stop.Otherwise, repeat this step.
X
ABC D E
F G
Cluster1Cluster2
Cluster3
X
1
2
Figure 9. Points falling in three clusters.
A B C D E F G
S
i
m
i
l
a
r
i
t
y
Figure 10. The dendrogram obtained usingthe single-link algorithm.
X
Y
1
11
1
1
11
1
1
2
2
2
2
22
Figure 11. Two concentric clusters.
276 • A. Jain et al.
ACM Computing Surveys, Vol. 31, No. 3, September 1999
単連結法では分離できて完全連結法では分離できない例
23
その他の指標• 計算量とクラスタ作成にかかる時間の最適化• Average Group Linkage(群平均法)• クラスタ間の距離は,クラスタを跨ぐ全点対の距離の平均
• Ward’s Method• クラスタの中心までの距離の二乗和を最小化する
24
D(Ci, Cj) =1
|Ci||Cj |�
x1∈Ci
�
x2∈Cj
D(x1, x2)
D(Ci, Cj) = E(Ci ∪ Cj)− E(Ci)− E(Cj)where E(Ci) =
�
x∈Ci
(d(x, ci))2,
ci =1
|Ci|�
x∈Ci
x
Average Group Linkage Ward’s Method
単連結法の結果
完全連結法の結果
トップダウン型クラスタリング(1)
• データ全体のばらつき具合を見て,点を再帰的に分割する• 全体を半分に分けて,それぞれを半分に分けて・・・• ボトムアップ型に比べると「よさげ」なクラスタの生成が期待できる.
• n点のクラスタリングを考えた時・・・• ボトムアップアップ型は,始めの操作でn*(n-1)通りの分割方法がある• 全通りの内,一番良さそうなところから併合• トップダウン型は,2^n通りの選択がある.• まじめに考えたら大変・・・
トップダウン型クラスタリング(2)• トップダウンクラスタリングの手順• 初期化:全ての点を同一のクラスタに属していると考える• 繰り返し:存在するクラスタを(何らかの方法で)分割する• 終了判定:分割するクラスタが無くなったら終了• クラスタをどのように分割するのか?• DIANA法 (DIvisive ANAlysis )
• DIANA法では,最も離れている点を選択し,そこにどんどん点を追加していく手法を取る• 詳細は次ページ以降
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)内の点までの平均距離を表す.後ほど,実際に計算してみる.
DIANA法(2): 手順A
B 1.2 B
C 1.3 1.0 C
D 3.0 4.0 4.1 D
E 1.9 2.0 2.5 2.3 E
F 2.3 3.2 3.4 1.1 2.2 F
G 4.1 4.0 4.5 3.5 2.5 4.0
A
BC
D
E
F
G
(A) クラスタリングを行う7個の点 (B) 7点の間の距離
86 第 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 ダイアナ法によるクラスター分割の手順
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
図 4.23(A)に V (G, {})を計算するために必要な距離を点線で示した.Gはクラスター V の中で,端の点であり,各点までの距離が長い.次に,全点の重心付近に位置する点Eについて,V (E, {})を計算してみよう.
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
図 4.23(B)に V (E, {})の計算において利用する距離を点線で示した.この距離は,点 Eが V の重心付近のため,点Gから各点への距離に比べると全般的に短い.計算結果より V (G, {}) > V (E, {})となる.V (i, {})が大きいほど,i
は V の中では端の方にあり,V から分離するクラスターにふさわしいことになる.
V (i, S)を計算する実装 computeVをリスト 4.11に示す.リスト 4.11において,入力の nはクラスターに入れる候補の点 iの番号を示し,ssetは S に入っている点の番号の集合.sbarは V ! S に入っている点の番号の集合である.2次元配列 dist[i][j]には,点 iと点 jの距離が含まれる.実装では,S の点までの距離の和 sdist と V ! S の点までの距離の和 bdist を別々に求め,V (i, S)(実装では変数 value)を計算している.computeVの返り値はV (i, S)の値である.ダイアナ法は,V (i, S) を利用し,図 4.24 の手順でクラスターを分割する.
DIANA法(3): 1点目の選択(1)A
B 1.2 B
C 1.3 1.0 C
D 3.0 4.0 4.1 D
E 1.9 2.0 2.5 2.3 E
F 2.3 3.2 3.4 1.1 2.2 F
G 4.1 4.0 4.5 3.5 2.5 4.0
A
BC
D
E
F
G
(A) クラスタリングを行う7個の点 (B) 7点の間の距離
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
EA
BC
D
F
G
(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 �= φ
DIANA法(4): 1点目の選択(2)A
B 1.2 B
C 1.3 1.0 C
D 3.0 4.0 4.1 D
E 1.9 2.0 2.5 2.3 E
F 2.3 3.2 3.4 1.1 2.2 F
G 4.1 4.0 4.5 3.5 2.5 4.0
(B) 7点の間の距離
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 �= φ
EA
BC
D
F
G
(D) スプリンターグループとして点Eを選んだ場合
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
DIANA法(5): 1点目の選択(3)
• V(i, {})の計算を全ての点に行うと
• 以上から,値の最も大きいのはV(G, {}).• V(G, {}) > 0 なので,点GをスプリンターグループSに追加• S = {G} • 更に,新しくSに追加する点を探索する.
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.7V (G, {}) = 3.77
DIANA法(6): 2点目の選択(1)
EA
BC
D
F
G
A
B 1.2 B
C 1.3 1.0 C
D 3.0 4.0 4.1 D
E 1.9 2.0 2.5 2.3 E
F 2.3 3.2 3.4 1.1 2.2 F
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
DIANA法(7): 2点目の選択(2)
• 他の全ての点について計算
• 最も値の大きいものはV(E {G})
• しかし,V(E, {G}) < 0なので,採用しない.
V (B, {G}) = 1/5(1.2 + 1.0 + 4.0 + 2.0 + 3.2)− 4.0 = −1.72V (C, {G}) = 1/5(1.3 + 1.0 + 4.1 + 2.5 + 3.4)− 4.5 = −2.04V (D, {G}) = 1/5(3.0 + 4.0 + 4.1 + 2.3 + 1.1)− 3.5 = −0.6V (E, {G}) = 1/5(1.9 + 2.0 + 2.5 + 2.3 + 2.2)− 2.5 = −0.32V (F, {G}) = 1/5(2.3 + 3.2 + 3.4 + 1.1 + 2.2)− 4.0 = −1.56
EA
BC
D
F
G
DIANA法(8): 2度目の分割(1)• Vを{A,B,C,D,E,F,G}を{A,B,C,D,E,F}と{G}に分割• V = {G}は分割不可能• V = {A,B,C,D,E,F}に変更してクラスタ分割を行う
• スプリンターグループS={D}として,新たにSに含める点を求める
V (A, {}) = 1/5(1.2 + 1.3 + 3.0 + 1.9 + 2.3) = 1.94V (B, {}) = 1/5(1.2 + 1.0 + 4.0 + 2.0 + 3.2) = 2.28V (C, {}) = 1/5(1.3 + 1.0 + 4.1 + 2.5 + 3.4) = 2.46V (D, {}) = 1/5(3.0 + 4.0 + 4.1 + 2.3 + 1.1) = 2.9V (E, {}) = 1/5(1.9 + 2.0 + 2.5 + 2.3 + 2.2) = 2.18V (F, {}) = 1/5(2.3 + 3.2 + 3.4 + 1.1 + 2.2) = 2.44
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 �= φ
DIANA法(9): 2度目の分割(2)• V={A,B,C,D,E,F}, S={D}として,V(i, S)を計算
• Sに追加する点として,Fが選択される.• V(F, {D}) > 0 なので,更にSに加える点を求める
V (A, {D}) = 1/4(1.2 + 1.3 + 1.9 + 2.3)− 3.0 = −1.325V (B, {D}) = 1/4(1.2 + 1.0 + 2.0 + 3.2)− 4.0 = −2.15V (C, {D}) = 1/4(1.3 + 1.0 + 2.5 + 3.4)− 4.1 = −2.05V (E, {D}) = 1/4(1.9 + 2.0 + 2.5 + 2.2)− 2.3 = −0.15V (F, {D}) = 1/4(2.3 + 3.2 + 3.4 + 2.2)− 1.1 = 1.675
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 �= φ
EA
BC
D
F
G
DIANA法(10): 2度目の分割(3)• V={A,B,C,D,E,F}, S={D,F} として計算
• 全ての値が負なので,終了.
V (A, {D,F}) = 1/3(1.2 + 1.3 + 1.9)− 1/2(3.0 + 2.3) = −1.183V (B, {D,F}) = 1/3(1.2 + 1.0 + 2.0)− 1/2(4.0 + 3.2) = −2.2V (C, {D,F}) = 1/3(1.3 + 1.0 + 2.5)− 1/2(4.1 + 3.4) = −2.15V (E, {D,F}) = 1/3(1.9 + 2.0 + 2.5)− 1/2(2.3 + 2.2) = −0.117
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 �= φ
EA
BC
D
F
GA B CD EFG
ダイアナ法で作成したデンドログラム
DIANA法の結果