datamining 7th kmeans

26
データマイニング クラスタリング(I) 非階層型クラスタリング 瀬々 潤 [email protected]

Upload: sesejun

Post on 11-Jul-2015

481 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datamining 7th kmeans

データマイニングクラスタリング(I)

非階層型クラスタリング

瀬々 潤[email protected]

Page 2: Datamining 7th kmeans

クラスタリング• 類似した挙動を示すサンプルを見つけ,グループ化する

• グループをクラスターと呼ぶ

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

Page 3: Datamining 7th kmeans

クラスタリングの応用

• 遺伝子発現データの解析• 類似した発現の遺伝子は類似した機能を持つのではないか?

• 顧客の分類• 顧客の行動,購買パターンをグループ化する

• 新聞記事の分類• 新聞の記事を,スポーツ,社会,など自動的に分類

Page 4: Datamining 7th kmeans

クラスタリング(2)• クラスタ内のサンプル同士はなるべく似る様に,クラスタが異なるサンプルはなるべく似ない(遠くなる)ように配置したい• 文字の分類ができるだろうか?

• 各画像に描かれている文字が何であるかは,知らない• 存在している文字の数や,グループがあるかを知りたい

4

Page 5: Datamining 7th kmeans

クラスタリング(3)• 2つの方法

• 階層的クラスタリング• クラスターに階層構造を付ける

• 非階層的クラスタリング• 予めグループの数を定めておく

• クラスタリングで注意すべき点• 点間の距離(サンプル間の距離)

• ユークリッド距離?マンハッタン距離?相関係数?• どのようにグループの境界を見つけるか

• グループの境界を決める教師がない:教師無し学習と呼ばれる

5

Page 6: Datamining 7th kmeans

点間の距離の計測• 実数値のデータ• それぞれのサンプルを多次元上の1点と見なす場合• 下図(多次元上の距離)• サンプル間の距離を相関係数で測る場合• 三角不等式が成立しない場合もある• 三角不等式:d(x,y)+d(y,z) >= d(x,z)

x

y

(A)直線距離(ユークリッド(ノルム)距離) (B) マンハッタン距離

x1

x2

dx1

dx2

�dx2

1 + dx22 |dx1| + |dx2|

x

y

x1

x2

dx1

dx2

6

Page 7: Datamining 7th kmeans

相関係数(correlation coefficient)• 点x=(x1, x2,...,xn)と点y=(y1,y2,...,yn)を考える.

r =�n

i=1(xi − x)(yi − y)��ni=1(xi − x)2

��ni=1(yi − y)2

• 点x, y 間の相関係数(Pearson’s R)は次式で与えられる

r ≈ −1r ≈ 1 r ≈ 0負の相関相関なし正の相関

x

y

x

y

x

y• 2次元上のn点の配置を見ている

7

Page 8: Datamining 7th kmeans

階層型クラスタリング• クラスターを階層的に作成する• 作成した階層図をデンドログラムと呼ぶ• デンドログラムの下で交わっているクラスタは類似度が高い(近い)ことを示す

• デンドログラムの上から作成するトップダウン型(Top-down Clustering, Divisive Clustering)とデンドログラムの下から作成するボトムアップ型(Bottom-up Clustering, Agglomerative Clustering)がある

A B C D E F

A

BC

DEF

G

G(A) 点の配置 (B) 階層型クラスタリングの結果

類似度

デンドログラム

8

Page 9: Datamining 7th kmeans

非階層型クラスタリング•デンドログラムは作成しない•予め与えられた個数のクラスタに分割したり(3個のクラスタに分割など),一定条件を満たすクラスタを生成(半径5以内のクラスタを作成など)したりする

9

Page 10: Datamining 7th kmeans

k-クラスタリング• 点集合をk個のグループに分割する• 定義:d次元のユークリッド空間 内の点集合Sを用意する.Sの点を以下の条件をk個の部分集合       に分割する事をk-クラスタリングと呼ぶ• 部分集合はSを覆う:• 部分集合同士は重ならない:

• 例えば,3-クラスタリングは・・・

S1, S2, . . . , Sk

S = S1 ∪ S2 ∪ · · · ∪ Sk

Si ∩ Sj = φ (i �= j)

A

BC

DEF

G

A

B C

D

EF

G

(A) 3-クラスタリングの望ましい例 (B) 3-クラスタリングの望ましくない分割例 10

Page 11: Datamining 7th kmeans

k-クラスタリング(2)• k-クラスタリングの条件を満たすクラスタ分割の内,次の指標が最も小さくなるものを選べば,「望ましい」クラスタが求まるはず.• (A) 属するクラスタの重心からの距離の総和が小さい

• 下記のv(Si)を最小化• (B) 全クラスタの内,最大の直径が小さい

• 下記のq(V)を最小化重心

(A) 重心からの距離

直径

(B) クラスタの直径

ci = (1/|Si|)�

x∈Si

x

v(Si) =1

|Si|�

x∈Si

(d(x, ci))n

(A)

(B) diameter(Si) = max {d(x1,x2)|x1,x2 ∈ Si}q(V ) = max {diameter(Si) | i = 1, . . . , k}

11

Page 12: Datamining 7th kmeans

k-クラスタリング(3)• 重心からの距離の2乗を小さくする問題

• データ数n, 次元数d とすると,O(n^(O(dn)))で求められることが知られている• 現実的なオーダーではない

• できるだけ目的関数を小さくする方法としてk-Means法がある• クラスタの最大の直径を小さくする問題

• 最適なクラスタの発見はNP-困難であることが知られている• 最適解の2倍以内の直径の解が得られる事を保証した方法としてゴンザレスの最遠点選択法

12

Page 13: Datamining 7th kmeans

(Hard) K-means(K-平均法)

• 単にk-meansと言った場合には,この方法を指す.• 最も単純なクラスタリングアルゴリズムの一つ.• 予めクラスターの個数Kを決めておく• 手順(次ページ以降に図有り)

1. 初期化• クラスターのK個の中心を仮に決める

• 既存の点からK個選ぶのが楽.• ランダムにK点を決めても良い

2. 各点のクラスターの所属を決める3. クラスターの中心を計算する4. 2, 3 を予め決めた回数繰り返す

Page 14: Datamining 7th kmeans

(0)初期状態

(1) k個の代表点mを  ランダムに選択

m(1)

m(2)

左図では7点が2次元上に配置されている.2-means クラスタリング(2個のクラスターの生成)を行おう

7点の内,2点を代表点に選ぶ.2点をそれぞれ,  ,   とする.m(1) m(2)

14

Page 15: Datamining 7th kmeans

(2) 各点のクラスターを決める(一番近い代表点の成すクラスタに属すると仮定)

点をxとすると,xに対し

となるkを決める.(xに対して最も近いm を発見する)xは現時点でm を代表点とするクラスターに属すとする.

左上図では, なので,xはm に属する.

k = arg mink

{d(m(k),x)}

(k)

(k)x

m(1)

m(2)

d(m(1),x) > d(m(2),x)(2)+

□□□ d(x,y)はとりあえず,ユークリッド距離を採用.

15

Page 16: Datamining 7th kmeans

++□

□□□

(3) 代表点(重心)を再計算

各クラスターに属する点の重心を,新たなクラスターの代表点とする.新たな重心  は,次式で計算できる.    は点  がクラスターkに属する時1.それ以外は0.  はクラスターkに属する点の数.

m(k) =�

n r(n)k x(n)

R(k)

r(n)k x(n)

R(k)

m(k)

m(1)

m(2)

16

Page 17: Datamining 7th kmeans

(4) 再クラスタリング

+++

□□□□

新たな代表点を基に,再度各点の属するクラスターを計算する.例えば,左図の点xは,重心の移動によってm からm へと属するクラスターが変化している.

クラスターへの振り分けが終わったら,重心の更新を行う

以上の(2),(3)を予め決めた回数,あるいは,収束するまで繰り返す.

m(1)

m(2)

x

(2) (1)

17

Page 18: Datamining 7th kmeans

K-meansの結果例• 5000回の繰り返し• 距離はユークリッド距離• 0 1 2 3 4 5 6 7 8 90 21 3 1 71 7 14 1 1 3 42 21 1 1 19 13 6 7 2 3 21 1 144 1 24 21 1 15 37 1 1 17 9 4 6 27 136 8 8 1 97 15 6 108 29 22 2 12 23 19 4 5 1 12 3 7

Clu

ster

#

18

Page 19: Datamining 7th kmeans

K-meansの問題点• 初期値依存性

• 計算の度に結果が変わる事がある.• kの値を予め決める必要が有る• 生成した結果が必ずしもクラスターを成していない場合が有る

Copyright Cambridge University Press 2003. On-screen viewing permitted. Printing not permitted. http://www.cambridge.org/0521642981

You can buy this book for 30 pounds or $50. See http://www.inference.phy.cam.ac.uk/mackay/itila/ for links.

288 20 — An Example Inference Task: Clustering

(a)

0

2

4

6

8

10

0 2 4 6 8 10

(b)

0

2

4

6

8

10

0 2 4 6 8 10

Figure 20.5. K-means algorithmfor a case with two dissimilarclusters. (a) The “little ’n’ large”data. (b) A stable set ofassignments and means. Note thatfour points belonging to the broadcluster have been incorrectlyassigned to the narrower cluster.(Points assigned to the right-handcluster are shown by plus signs.)

(a) (b)

Figure 20.6. Two elongatedclusters, and the stable solutionfound by the K-means algorithm.

function is provided as part of the problem definition; but I’m assuming weare interested in data-modelling rather than vector quantization.] How do wechoose K? Having found multiple alternative clusterings for a given K, howcan we choose among them?

Cases where K-means might be viewed as failing.

Further questions arise when we look for cases where the algorithm behavesbadly (compared with what the man in the street would call ‘clustering’).Figure 20.5a shows a set of 75 data points generated from a mixture of twoGaussians. The right-hand Gaussian has less weight (only one fifth of the datapoints), and it is a less broad cluster. Figure 20.5b shows the outcome of usingK-means clustering with K = 2 means. Four of the big cluster’s data pointshave been assigned to the small cluster, and both means end up displacedto the left of the true centres of the clusters. The K-means algorithm takesaccount only of the distance between the means and the data points; it hasno representation of the weight or breadth of each cluster. Consequently, datapoints that actually belong to the broad cluster are incorrectly assigned to thenarrow cluster.

Figure 20.6 shows another case of K-means behaving badly. The dataevidently fall into two elongated clusters. But the only stable state of theK-means algorithm is that shown in figure 20.6b: the two clusters have beensliced in half! These two examples show that there is something wrong withthe distance d in the K-means algorithm. The K-means algorithm has no wayof representing the size or shape of a cluster.

A final criticism of K-means is that it is a ‘hard’ rather than a ‘soft’algorithm: points are assigned to exactly one cluster and all points assignedto a cluster are equals in that cluster. Points located near the border betweentwo or more clusters should, arguably, play a partial role in determining thelocations of all the clusters that they could plausibly be assigned to. But inthe K-means algorithm, each borderline point is dumped in one cluster, and

19

Page 20: Datamining 7th kmeans

ゴンザレスの最遠点選択法(1)

112 第 4章 クラスタリング(1) 初期化:V を与えられた点集合とし,C をクラスターの代表点の集合とする.

C は空集合 {}で初期化する.(2) 開始点の作成:V から,1点 c1 ! V を選択し,C に追加.c1 の選択は V の中からランダムに行う.

(3) j = 2, . . . , k について,以下のステップ (a),(b)を繰り返し実行する(a) クラスターの作成:neighbor(x) を点 x(! V " C) が最も近い C の点とする.xは neighbor(x)を代表点とするクラスターに属していると定義する.

(b) 次式を満たす cj を C に追加する.

d(cj , neighbor(cj)) = maxx!V "C

{d(x, neighbor(x)) | x ! V " C}

cj は,その点が属するクラスターの代表点までの距離が最も遠い点を示している.

図 4.38 ゴンザレスの最遠点選択法の手順

4.10 ゴンザレスの最遠点選択法前節では k-中心法のクラスタリングは一般にNP困難であることを見た.本節で紹介するゴンザレスの最遠点選択法は,ユークリッド空間上で行う k-中心法において,最適解の 2倍以内の直径の解が得られる事を保証した有用な方法である78).

4.10.1 ゴンザレスの最遠点選択法の手順ゴンザレスの最遠点選択法は,存在するクラスターの中心から最も遠い点を新たなクラスターの代表点とし,クラスター分割を繰り返す方法である.手順を図 4.38に示し,実例を図 4.39に示す.ゴンザレスの最遠点選択法では,始めに与えられた点から代表点として 1点をランダムに選択する(図 4.38(2)).図 4.39(A)に例としてクラスタリングを行う 7点を示した.(この点は図 4.22(A)(P.85) に示したものと同一であり,各点の距離は図 4.22(B) に従う).この 7 点から代表点 1 点 c1 を選択する.図 4.39(B) は c1 として点 G を選択した例である.代表点として選ばれた点を星印で示している.次に,選択した代表点を基にクラスターを作成する (図4.38(3-a)).現在は代表点が一つであり,全点を 1つのクラスターとする.つ

EA

BC

D

F

G

(B) 代表点として点Gを選択

EA

BC

D

F

G

(A) クラスタリングを行う7点

• 現実的な問題ではあまり有用な結果が得られない事が多いが、クラスタの大きさが保証され、計算機科学的に有用なので、紹介する。

20

Page 21: Datamining 7th kmeans

ゴンザレスの最遠点選択法(2)

EA

BC

D

F

G

(C) 代表点から最も遠い点である  点Cを新たな代表点として選択

112 第 4章 クラスタリング(1) 初期化:V を与えられた点集合とし,C をクラスターの代表点の集合とする.

C は空集合 {}で初期化する.(2) 開始点の作成:V から,1点 c1 ! V を選択し,C に追加.c1 の選択は V の中からランダムに行う.

(3) j = 2, . . . , k について,以下のステップ (a),(b)を繰り返し実行する(a) クラスターの作成:neighbor(x) を点 x(! V " C) が最も近い C の点とする.xは neighbor(x)を代表点とするクラスターに属していると定義する.

(b) 次式を満たす cj を C に追加する.

d(cj , neighbor(cj)) = maxx!V "C

{d(x, neighbor(x)) | x ! V " C}

cj は,その点が属するクラスターの代表点までの距離が最も遠い点を示している.

図 4.38 ゴンザレスの最遠点選択法の手順

4.10 ゴンザレスの最遠点選択法前節では k-中心法のクラスタリングは一般にNP困難であることを見た.本節で紹介するゴンザレスの最遠点選択法は,ユークリッド空間上で行う k-中心法において,最適解の 2倍以内の直径の解が得られる事を保証した有用な方法である78).

4.10.1 ゴンザレスの最遠点選択法の手順ゴンザレスの最遠点選択法は,存在するクラスターの中心から最も遠い点を新たなクラスターの代表点とし,クラスター分割を繰り返す方法である.手順を図 4.38に示し,実例を図 4.39に示す.ゴンザレスの最遠点選択法では,始めに与えられた点から代表点として 1点をランダムに選択する(図 4.38(2)).図 4.39(A)に例としてクラスタリングを行う 7点を示した.(この点は図 4.22(A)(P.85) に示したものと同一であり,各点の距離は図 4.22(B) に従う).この 7 点から代表点 1 点 c1 を選択する.図 4.39(B) は c1 として点 G を選択した例である.代表点として選ばれた点を星印で示している.次に,選択した代表点を基にクラスターを作成する (図4.38(3-a)).現在は代表点が一つであり,全点を 1つのクラスターとする.つ

E

A

BC

D

F

G

(D) 代表点への距離でクラスターを分割

E

A

BC

D

F

G

(E) 代表点から最も遠い点である点Dを選択 21

Page 22: Datamining 7th kmeans

ゴンザレスの最遠点選択法(2)

E

A

BC

D

F

G

(E) 代表点から最も遠い点である点Dを選択

E

A

B

D

F

G

(F) 代表点を基にクラスタリング

C

階層的クラスタリングではないので,デンドログラムは無し!

ゴンザレスの最遠点選択法で最悪の場合(最適な分割の2倍の直径になる場合)って?ヒント:下の様な例を考えよう(完全に等間隔にしてはいけない)

22

Page 23: Datamining 7th kmeans

自己組織化マップ(Self Organizing Map)

• 大脳皮質の自己組織的構成を模して作成している方法• 学習する点をユニットと呼ぶ

• ユニットをニューロンと考えている• ユニットを格子状,もしくは蜂の巣状に配置する• 各ユニットは,周囲のユニットと接続している

23

Page 24: Datamining 7th kmeans

(A)ユニットiの値(Mi)をランダムな値で初期化(全ユニットに行う)・左の例では,値を矢印の向きで値を表示している・ユニットが六角形に配置されているが,を格子状に配置する方法もある

(B)選択したサンプルに最も近い点(勝者ユニットW)を選択(灰色で示した)・距離はユークリッド距離でも,相関係数でも良い.左の例では方向が似ているユニットを選択している.

選択したサンプルX

Page 25: Datamining 7th kmeans

(C)Wから半径R以内のユニットNを選択

(D)NのユニットMの値を入力の点Xの値に従って補正

M(t+1) = M(t) + h(t) (X(t) -M(t))

h(t)は C * (1 - t / T) [Cは予め決めた定数,Tは予め定めた繰り返しの回数] などの様に段々小さくなり0に収束する関数.

X(t)

M(t)

X(t)-M(t)M(t+1)

Page 26: Datamining 7th kmeans

(A)初期は変更の範囲を大きく取るまた,ユニットの方向も入力データの方向に依存して大きく変更する.

(B)回数を経る毎に選択範囲を徐々に小さくすると共に,入力データによるユニットの方向の更新も小さくする.

SOMの改良

・半径Rを固定するのをやめ,段々小さくしたいユニットiのベクトルを次の式で更新するMi(t+1) = Mi(t) + α(i,t) h(t) (W(t) -Mi(t))α(i,t)=exp(-|pi - pw| / 2σ(t)^2):piはユニットiの場所, pwは勝者ユニットの場所σ(t)は S * (1 - t / T)