クラシックな機械学習の入門  8. クラスタリング

32
8. クラスタリング 距離と類似度 階層型クラスタリング K-means クラシックな機械学習の入門 by 中川裕志(東京大学)

Upload: hiroshi-nakagawa

Post on 15-Jun-2015

2.382 views

Category:

Technology


3 download

DESCRIPTION

代表的な教師なし学習アルゴリズムであるクラスタリングについて説明する。これは、データの持つ性質の近いもの同士をまとめ上げるアルゴリズムである。また、そのために必要な距離と類似度についても説明する。

TRANSCRIPT

Page 1: クラシックな機械学習の入門  8. クラスタリング

8. クラスタリング

距離と類似度

階層型クラスタリング

K-means

クラシックな機械学習の入門

by 中川裕志(東京大学)

Page 2: クラシックな機械学習の入門  8. クラスタリング

クラスタリング(Clustering)とは?

教師データはない

性質が近い観測データ点をひとまとまり(これを「クラスタ」と呼ぶ)にまとめる

3つのキーポイント 「性質が近い」ということを定量的に表すために観測データ点間の距離を定義する

距離の近いものをどのようにまとめるかというアルゴリズム

いくつのまとまり(=クラスタ)があるのか ただし、クラスタ数はまとめるアルゴリズムと密接に関連 すると距離ないし類似度が大切なので、まずはそれから。

Page 3: クラシックな機械学習の入門  8. クラスタリング

観測データ点を多次元空間中の点と定義

そこで2つの問題

各次元は観測データ点からどのように定義するか

次元のことをfeatureあるいは素性(そせい)と呼ぶ

この問題をfeature design :素性設計と呼ぶ。例えば、

2つの素性の比を新たな素性とする ex 身長/体重

2つの素性の連続したもの ex 日本・銀行、 日本・沈没、

しかし、これは個別適用分野に応じて工夫すべし。

多次元空間における2点間の距離の定義

ユークリッド距離ばかりではないのだ!

距離の定義

Page 4: クラシックな機械学習の入門  8. クラスタリング

距離あるいは類似度の定義

wiをデータ点を表す素性のベクトルとする。 ex. あるテキストwにおいて語彙番号1の「日本」が3回、

語彙番号2の「米国」が2回、語彙番号3の「中国」が1回,… 出現したとき、wの素性ベクトル: wi=(3,2,1,….)T

wiの第j成分wijとしてTF*IDF(i,j)を使うこと有

距離で定義する場合と、その逆の類似度で定義する場合がある。類似度の場合は、最大値=1、最小値=0とすることが多い。

いくつかの定義を次のページ以降に記す。

Page 5: クラシックな機械学習の入門  8. クラスタリング

距離あるいは類似度の定義 1

が定義できる。えば、成分の生起確率だと思番目のが

擬距離)

ユークリッド距離

係数(類似度)

係数(類似度)

内積と書くと 

類似度  

KLkw

wwKLdivergenceKL

wwwwwwDist

ww

wwwwDiceDice

ww

wwwwJaccard

wwwwwwwwww

ww

wwwwcosine

ik

ji

N

k

jkikjiji

ji

ji

ji

ji

ji

ji

N

k

iki

N

k

jkikjiiNiii

ji

ji

ji

||(

),(

2),(

||

||),(Jaccard

),(),...,,(

),()(cosine

2/1

1

2

2/1

1

2

1

21

i.e.TF*IDF(i,N)

Page 6: クラシックな機械学習の入門  8. クラスタリング

いよいよ距離の話に進むのだが、 その前に情報理論の基礎概念を復習

エントロピー:

結合エントロピー:

条件付エントロピー:

)(log)( xPxPxHx

)|(log),()|( xyPyxPxyHx y

yHyxH

yPyxPyxPyxP

yPyxPyxPyxPyxPyxH

x yx y

x yx y

|

)(log),()|(log),(

)()|(log),(),(log),(),(

),(log),(),( yxPyxPyxHx y

Page 7: クラシックな機械学習の入門  8. クラスタリング

KL divergence: 情報理論による擬距離

相対エントロピー or Kullback-Leibler divergence or KL divergence: KL(P||Q):分布PとQの類似性を測る尺度

KL(P||P)=0

KL(P||Q)≠KL(Q||P)

非対称なので擬距離

対称性を持たせるために SymmetricKL(P||Q)=(KL(P||Q)+KL(Q||P))/2 という尺度もある

相互情報量:

)(

)(log)()| |(

i

i

i

ixQ

xPxPQPKL

yx yPxP

yxPyxPyPxPyxPKLyxI

,

,log,||,,

この部分をpointwise mutual informationとして使うこともある

Page 8: クラシックな機械学習の入門  8. クラスタリング

距離の計算例

x=(1,0), y=(0,1)の場合

1

0log0

0

1log1)||(

21001,

01001

10012,

02

0

|1,00,1|

|1,00,1|,

01001

1001),cos(

2/122

22

22

yxKL

yxDist

yxDice

yxJaccard

yx

(擬)距離 

距離  

類似度 

類似度 

類似度  

Page 9: クラシックな機械学習の入門  8. クラスタリング

距離の計算例

x=(1,1), y=(2,2)の場合

化すれば同一分布は確率分布として正規yxyxKL

yxDist

yxDice

yxJaccard

yx

,0)||(

21212,

88.123

8

2211

21212,

12

2

|2,21,1|

|2,21,1|,

182

4

2211

2121),cos(

2/122

2222

2222

Page 10: クラシックな機械学習の入門  8. クラスタリング

距離の計算例

x=(1,2), y=(2,1)の場合

82.22log3

1

1

2log

3

2

2

1log

3

1

31

32

log3

2

32

31

log3

1)||(

21212,

35.052

8

1221

21212,

12

2

|1,22,1|

|1,22,1|,

5

4

1221

2121),cos(

2/122

2222

2222

yxKL

yxDist

yxDice

yxJaccard

yx

Page 11: クラシックな機械学習の入門  8. クラスタリング

距離の定義1のスライドで示した距離、類似度はすべての次元の数値を平等に扱っていた。

ただし、次元の間に相関がある場合はよい距離ではない。

この場合に対応するのがマハラノビス距離 図に示すように各次元の方向毎に異なるスケーリング+回転

距離の定義 2-1

原点から等距離線

ユークリッド距離 マハラノビス距離

Page 12: クラシックな機械学習の入門  8. クラスタリング

マハラノビス距離dAの楕円の等距離線を実現するには次式の正定値行列Aを用いる

Aが単位行列ならユークリッド距離の2乗

Aが対角行列なら、次元毎のスケールが異なる

Aが非対角行列なら回転も加わる

距離の定義 2-2

iNiN

ji

iNiNjiji

T

jijiA

ww

ww

AwwwwwwAwwwwd 11

11 ,...,,

2

1

2

12

2

2

2

10

02

10

01

Page 13: クラシックな機械学習の入門  8. クラスタリング

Aは各次元のデータの分散行列:covの逆行列

距離の定義 2-3

NN

NN

wwN

iNiN

jiiNiNji

ji

T

jijiA

xxxx

xx

xx

ExxA

K

ww

wwAwwww

wwAwwwwd

K

,...,

cov

,...,

,

1111

..1

1

1111

1

するとを観測データ点の数と

Page 14: クラシックな機械学習の入門  8. クラスタリング

マラハノビス距離の直観的説明 下図で横軸方向の分散=100A11=0.01

マハラノビス距離の成分=0.01x

縦軸方向の分散=0.01 A22=100

マハラノビス距離の成分=100x

横軸方向の分散が大きいので、意味的には原点からあまり離れていない

縦軸方向の分散が小さいので、意味的には原点から

大きく離れている

x

x

原点からの等距離線

Page 15: クラシックな機械学習の入門  8. クラスタリング

データ点間の距離を利用してまとめあげるアルゴリズムをクラスタリングアルゴリズムと呼ぶことが多い。ここでは以下に2種について説明する。

階層型

K-means

まとめるアルゴリズム

Page 16: クラシックな機械学習の入門  8. クラスタリング

階層型クラスタリングアルゴリズムの概念:Dendrogram (Hierarchical Agglomerative Clustering Algorithm: HAC)

Page 17: クラシックな機械学習の入門  8. クラスタリング

階層型クラスタリングアルゴリズム:閾値で切るという直感的意味 (Hierarchical Agglomerative Clustering Algorithm: HAC)

Page 18: クラシックな機械学習の入門  8. クラスタリング

Dendrogram形成方法が鍵 一番下のデータ点CiとCjをつなぐときは、距離d(Ci,Cj)が一番小さいものをつなぐ

つながれたデータ点集合は新たなひとつの擬データ点Ckとみなす。

(擬)データ点同士をつなぐときに閾値θにより次のように条件付ける

if min d(Ci,Cj) < θ then new Ck= Ci∪Cj

i,j

otherwise Ci, Cj are result clusters

図では高さの閾値のように書いたが、実は上記のようにd(Ci,Cj)の閾値。 θが大きいほど大きなクラスタが作られる。

距離d(Ci,Cj)の定義によっていくつかのvariationがある。

Page 19: クラシックな機械学習の入門  8. クラスタリング

距離の定義

l m

ji

ji

ji

jimlji

jimlji

ii

mClCdCC

CCd

mClCdCCd

mClCdCCd

kkCC

)(),(||||

1,

methodlink average Group

)(),(max,

methodlink Complete

)(),(min),(

methodlink Single

,..2,1),(

,

,

Single linkはまばらな内容のクラスタ、とくに鎖状につながったクラスタを作りやすい

Complete link は最初は凝縮したクラスタを作りがち。最後のころに離れ離れのクラスタを無理やりつなぐ傾向あり

Group average は、その中庸をとる。

Page 20: クラシックな機械学習の入門  8. クラスタリング

K-means法

前述の階層型クラスタリングでは、閾値θで、クラスタのまとまりの良さを決めていた。しかし、クラスタ数そのものを制御できない。

一般的には、もともといくつのクラスタがあるか分からない。

もし、クラスタ数がK個だと分かっているとき使えるのが、K-means法。

後に述べるEMアルゴリズムの原始的な形態。

Page 21: クラシックな機械学習の入門  8. クラスタリング

K-means のアルゴリズム

1. データ:x[n]はN個

2. K個の点の初期値:m[k]を適当な値に決める

3. for (var n = 1; n <= N; n++)

{ x[n]の所属先を 距離(x[n] , m[k] )の一番小さい k とする}

4. m[k]を、kに所属するx[n]の平均値に更新

5. 収束のテスト

例えば、全てのkで更新前m[k]と更新後m[k]の距離が予め決めた閾値εより小さい

6. 収束したら終了。収束しなかったら3.へ戻る

Page 22: クラシックな機械学習の入門  8. クラスタリング

初期化

Page 23: クラシックな機械学習の入門  8. クラスタリング

各データの所属を一番m[k]に近い決める

Page 24: クラシックな機械学習の入門  8. クラスタリング

m[k]の更新

Page 25: クラシックな機械学習の入門  8. クラスタリング

各データ点の所属の更新

破線の境界から実線の境界へ

Page 26: クラシックな機械学習の入門  8. クラスタリング

m[k]の更新

Page 27: クラシックな機械学習の入門  8. クラスタリング

所属の更新: m[k]の変化は小さくなってくる

Page 28: クラシックな機械学習の入門  8. クラスタリング

標準的評価法

• 精度:Precision=𝑇𝑃

𝑇𝑃+𝐹𝑃

• 再現率:Recall=𝑇𝑃

𝑇𝑃+𝐹𝑁

• F値=2×𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛×𝑅𝑒𝑐𝑎𝑙𝑙

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑎𝑙𝑙

処理sで得られたデータ集合

処理sで得られるべきデータ集合

FP TP FN

TN

Page 29: クラシックな機械学習の入門  8. クラスタリング

クラスタリングの評価:Purity 生成されたクラスタがどれだけ多数派で占められているかを表す尺度

L

i

jij

L

i

jij

L

i

K

j

ji

jiL

j

ji

ji

K

nN

n

n

purityglobal

n

n

puritylocal

j

in

L

CCCN

1

,

1

,

1 1

,

,

1

,

,

1

max1

max1

max1

:

,,...:,:

 

 

するデータ数番目の真のクラスに属

て番目のクラスタにおい生成された

生成されたクラスタ数

真のクラス集合データ数

Page 30: クラシックな機械学習の入門  8. クラスタリング

local purity

global purity

問題点 何もしない場合

全データが同一クラスタ

1クラスタが1データ

1 2 3

10

6)1( ,

8

4)1( ,

7

5)1( puritypuritypurity

6.025

15

1087

645

purity

jiji

nN

purity ,,

max1

111

max1

11

, N

N

Nn

Npurity

L

i

L

i

jij

Page 31: クラシックな機械学習の入門  8. クラスタリング

Inverse Purity

K

i

jij

K

i

ji

L

j

ji

n

n

n

NityInversePur

1

,

1

,

1

,

max1

真のクラスjのデータ総数 1クラスタに1個のデータしかない場合も

Inverse Purityは1より小さい。

そこでPurityとの調和平均であるF値で評価

ityInversePurPurity

F11

2

クラスタiのデータ数

Page 32: クラシックな機械学習の入門  8. クラスタリング

8個、 7個、 10個

1 2 3

25

15

1087

645

Purity

599.0

598.0

1

6.0

1

2

値F

598.0610

104

7

85

8

7

25

1

ityInversePur