データ解析...

48
データ解析 第十四回「クラスタリング」 鈴木 大慈 理学部情報科学科 西八号館 W707 号室 [email protected] 1 / 45

Upload: others

Post on 10-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • データ解析第十四回「クラスタリング」

    鈴木 大慈理学部情報科学科西八号館W707号室

    [email protected]

    1 / 45

  • 今日の講義内容

    階層的クラスタリングk-means法混合ガウスモデルによるクラスタリング:EM-アルゴリズムTOPIX CORE 30のクラスタリング

    2 / 45

  • 階層的クラスタリング

    ソフ

    トバ

    ンク

    パナ

    ソニ

    ック

    KD

    DI

    東芝

    ソニ

    ー 三菱

    地所

    野村

    ホー

    ルデ

    ィン

    グス

    みず

    ほフ

    ィナ

    ンシ

    ャル

    グル

    ープ

    三菱

    UF

    Jフ

    ィナ

    ンシ

    ャル

    ・グ

    ルー

    三井

    住友

    フィ

    ナン

    シャ

    ルグ

    ルー

    花王

    アス

    テラ

    ス製

    ファ

    ナッ

    信越

    化学

    工業

    小松

    製作

    東京

    海上

    ホー

    ルデ

    ィン

    グス

    日本

    電信

    電話

    エヌ

    ・テ

    ィ・

    ティ

    ・ド

    コモ

    日本

    たば

    こ産

    セブ

    ン&

    アイ

    ・ホ

    ール

    ディ

    ング

    東日

    本旅

    客鉄

    三井

    物産

    三菱

    商事

    日産

    自動

    キヤ

    ノン

    本田

    技研

    工業

    武田

    薬品

    工業

    トヨ

    タ自

    動車

    新日

    鐵住

    日立

    製作

    0.10

    0.15

    0.20

    0.25

    0.30

    0.35

    0.40

    Cluster Dendrogram

    hclust (*, "ward.D")dist(topix30)

    Height

    3 / 45

  • ハードクラスタリング

    4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

    2.0

    2.5

    3.0

    3.5

    4.0

    Sepal.Length

    Sep

    al.W

    idth

    4 / 45

  • ソフトクラスタリング

    Sepal.Length

    Sep

    al.W

    idth

    −20

    −1

    8

    −16

    −14

    −12

    −12

    −12

    −10

    −10

    −10

    −8

    −8

    −8

    −6

    −6

    −6

    −4

    −4

    −4

    −2

    −2

    4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

    2.0

    2.5

    3.0

    3.5

    4.0

    log Density Contour Plot

    5 / 45

  • 構成

    1 階層的クラスタリング

    2 k-means法

    3 混合ガウスモデル:EM-アルゴリズム

    4 TOPIX CORE 30銘柄のクラスタリング

    6 / 45

  • 階層的クラスタリングの手順

    7 / 45

  • 階層的クラスタリングの手順

    7 / 45

  • 階層的クラスタリングの手順

    7 / 45

  • 階層的クラスタリングの手順

    サンプル間およびクラスタ間の距離が決まっていれば階層的クラスタリングは可能.

    7 / 45

  • サンプル間の距離

    ユークリッド距離 ((dist(x,method=”euclidean”)):

    d(x , x ′) =

    √√√√ d∑j=1

    (xj − x ′j )2.

    ミンコフスキー距離 (ℓp-norm, dist(x,method=”minkowski”,p=3))

    d(x , x ′) =

    d∑j=1

    |xj − x ′j |p1/p .

    最大距離 (dist(x,method=”maximum”))

    d(x , x ′) = maxj=1,...,d

    |xj − x ′j |.

    8 / 45

  • サンプル間の距離 (続き)

    マンハッタン距離 (dist(x,method=”manhattan”))

    d(x , x ′) =d∑

    j=1

    |xj − x ′j |.

    キャンベラ距離 (dist(x,method=”canberra”))

    d(x , x ′) =d∑

    j=1

    |xj − x ′j ||xj |+ |x ′j |

    .

    バイナリー距離 (x , x ′ が 0-1値のバイナリベクトルのとき,dist(x,method=”binary”))

    d(x , x ′) = 1−∑d

    j=1 min(xj , x′j )∑d

    j=1 max(xj , x′j ).

    9 / 45

  • クラスタ間の距離

    最短距離法 (単連結法, single linkage method)

    D(C ,C ′) = minx∈C ,x′∈C

    d(x , x ′)

    ノイズに弱い.最長距離法 (完全連結法, complete linkage method)

    D(C ,C ′) = maxx∈C ,x′∈C

    d(x , x ′)

    保守的.10 / 45

  • クラスタ間の距離 (続き)

    群平均法 (average linkage method)

    D(C ,C ′) =1

    |C ||C ′|∑

    x∈C ,x′∈C

    d(x , x ′).

    ウォード法 (Ward’s method)

    (ユークリッド距離の場合) D(C ,C ′) =∥x̄C − x̄C ′∥2

    1/|C |+ 1/|C ′|,

    ただし,x̄C = 1|C |∑

    x∈C x.ユークリッド距離以外では

    D(C1∪C2,C3)=(|C1|+|C2|)D(C1,C2)+(|C2|+|C3|)D(C2,C3)+(|C1|+|C3|)D(C1,C3)∑3

    j=1|Cj |

    ,

    で再帰的に定義.もっとも広がりが小さく抑えられるクラスタを追加.

    McQuitty法 (McQuitty’s method)

    重心法 (centroid method)

    メディアン法 (median method)

    11 / 45

  • 階層的クラスタリングの手順 (具体的に)

    初期化: サンプル {xi}ni=1 それぞれが 1つのクラスタを形成するように n個のクラスタを作成.以下の手順を全体がひとつのクラスタになるまで続ける.

    1 すべてのクラスタ間の距離を計算.

    2 最も距離の近いクラスタを統合.

    12 / 45

  • 階層的クラスタリングのRコード� �hclust(dist(x))

    hclust(dist(x,method="canberra"),method="ward")� �8 9

    1 5

    2

    4 10 3 6 7

    0.0

    0.5

    1.0

    1.5

    2.0

    2.5

    3.0

    Cluster Dendrogram

    hclust (*, "complete")dist(x)

    Hei

    ght

    13 / 45

  • ヒートマップ

    行列データがあった場合,行間の階層的クラスタリングと列間の階層的クラスタリングを同時に行い,プロットすることができる.� �dsf

  • ジヒドロ葉酸還元酵素阻害剤データのヒートマップ

    6 5 4 11 20 10 14 16 15 12 17 13 2 3 19 18 8 9 7 1

    moe2D_PEOE_VSA_FNEGmoe2D_PEOE_VSA.1.1moe2D_PEOE_VSA.0.1moeGao_Abra_Rmoe2D_BCUT_SLOGP_1moe2D_GCUT_SMR_1moe2D_GCUT_SLOGP_1moe2D_GCUT_PEOE_1moe2D_PEOE_VSA_FHYDmoe2D_PEOE_VSA.2.1moe2D_PEOE_VSA.3moe2D_BCUT_PEOE_1moe2D_BCUT_SMR_1moe2D_GCUT_SMR_3moe2D_GCUT_PEOE_3moe2D_GCUT_SLOGP_3moe2D_BCUT_SLOGP_3moe2D_BCUT_SMR_3moe2D_BCUT_PEOE_3moeGao_Abra_Lmoe2D_Kier3moe2D_KierA3moe2D_Kier1moe2D_Kier2moe2D_PEOE_VSA.0moe2D_KierFlexmoe2D_KierA1moe2D_KierA2moe2D_PEOE_VSA.6moe2D_FChargemoe2D_PEOE_VSA.3.1moe2D_PEOE_VSA.1moe2D_GCUT_SLOGP_0moeGao_Abra_aciditymoe2D_PEOE_VSA.6.1moeGao_Abra_pimoe2D_PEOE_PC.moe2D_PEOE_VSA.2moe2D_PEOE_PC..1moe2D_PEOE_RPC.moe2D_GCUT_SMR_0moe2D_BCUT_PEOE_0moe2D_BCUT_SMR_0moe2D_BCUT_SLOGP_0moe2D_GCUT_PEOE_0moe2D_PEOE_RPC..1moe2D_BCUT_SLOGP_2moe2D_GCUT_SLOGP_2moe2D_GCUT_SMR_2moe2D_BCUT_SMR_2moe2D_BCUT_PEOE_2moe2D_GCUT_PEOE_2moe2D_PEOE_VSA.4.1moeGao_Abra_basicitymoe2D_PEOE_VSA.5moe2D_PEOE_VSA.5.1moe2D_PEOE_VSA_FPOLmoe2D_PEOE_VSA_FPNEGmoe2D_PEOE_VSA.4

    コードはスクリプトファイルを参照15 / 45

  • 手書き文字のクラスタリング

    0.0 0.4 0.80.

    00.

    40.

    80.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    0.0 0.4 0.8

    0.0

    0.4

    0.8

    MNISTデータセット.数字 0から 9,各文字画像の平均値を計算.

    16 / 45

  • 手書き文字の階層的クラスタリング

    7

    4 9

    0

    2 6

    1

    3

    5 8

    500

    1000

    1500

    2000

    Cluster Dendrogram

    hclust (*, "ward.D")dist(x)

    Hei

    ght

    17 / 45

  • 構成

    1 階層的クラスタリング

    2 k-means法

    3 混合ガウスモデル:EM-アルゴリズム

    4 TOPIX CORE 30銘柄のクラスタリング

    18 / 45

  • k-means法の結果

    −2 −1 0 1

    −0.

    50.

    00.

    51.

    01.

    52.

    02.

    5

    xx[,1]

    xx[,2

    ]

    (a) 生データ

    −2 −1 0 1

    −0.

    50.

    00.

    51.

    01.

    52.

    02.

    5xx[,1]

    xx[,2

    ]

    (b) クラスタリング結果

    19 / 45

  • k-means法の最適化問題としての定式化

    K 個の代表点でサンプルを近似したい.� �min

    µ1,...,µK

    n∑i=1

    ∥xi − µki∥2

    ただし,µki は xi に一番近い {µ1, . . . , µK}内の点.� �この最適化問題は NP-困難.局所的に {µk}k を繰り返し更新して良い局所解を求める.

    20 / 45

  • k-means法の手順

    1 クラスタリング:

    Ck = {i ∈ {1, . . . , n} | xi にとって µk が最も近い }.

    2 クラスタの平均を計算:

    µk =1

    |Ck |∑i∈Ck

    xi .

    上記の手順を収束するまで何度も繰り返す.

    21 / 45

  • k-means法の収束の様子

    -6 -4 -2 0 2 4-4

    -2

    0

    2

    4

    6

    8

    0 iteration

    -6 -4 -2 0 2 4-4

    -2

    0

    2

    4

    6

    8

    1 iteration

    -6 -4 -2 0 2 4-4

    -2

    0

    2

    4

    6

    8

    2 iteration

    -6 -4 -2 0 2 4-4

    -2

    0

    2

    4

    6

    8

    3 iteration

    22 / 45

  • Rによる k-means法

    � �res

  • 人工データで実行した結果 (再掲)

    −2 −1 0 1

    −0.

    50.

    00.

    51.

    01.

    52.

    02.

    5

    xx[,1]

    xx[,2

    ]

    24 / 45

  • 構成

    1 階層的クラスタリング

    2 k-means法

    3 混合ガウスモデル:EM-アルゴリズム

    4 TOPIX CORE 30銘柄のクラスタリング

    25 / 45

  • 混合ガウス分布

    混合ガウス分布

    P(x) =K∑

    k=1

    πkN(µk ,Σk)

    いくつかのガウス分布の足しあわせ (∑K

    k=1 πk = 1).

    26 / 45

  • 混合ガウス分布

    実際は色分けはされていない.

    (c) これから (d) これを復元したい

    27 / 45

  • 混合ガウス分布の生成モデル

    x の密度関数:

    p(x) =K∑

    k=1

    πkg(x |µk ,Σk)

    (g はガウス分布の密度関数とする)� �クラスタラベル Z = k は確率 πk で得られる.

    Z ∼ Mult(π1, . . . , πK )

    クラスタが Z = k であるとき,x はガウス分布から得られる:

    X |{Z = k} ∼ N(µk ,Σk).

    この時,X の周辺分布は p(X )となる.� �では,X が与えられたもとでの Z の分布はどうなるだろうか?

    28 / 45

  • ガウス要素への寄与率

    � �ベイズの定理

    P(Y |X ) = P(X |Y )P(Y )P(X )� �

    クラスタ k への寄与率:

    P(Z = k |X ) = g(X |µk ,Σk)πk∑Kk′=1 g(X |µk′ ,Σk′)πk′

    .

    P(Z = k|X )が大きいほど,X はクラスタ k に属している確率が高い.

    パラメータをどう推定するか?対数尤度関数が凹関数ではなく局所最適解がたくさんあるため,推定が難しい.→ EM-アルゴリズム.

    29 / 45

  • EM-アルゴリズム (※超重要)

    EM-アルゴリズムのアイディア:

    観測値 {xi}ni=1 は不完全データ.本来は,どのクラスタに属しているかの隠れ変数 {zi}ni=1 が裏にある.隠れ変数を固定してしまえば,パラメータの最尤推定量は簡単に求まる.

    隠れ変数 {zi}ni=1 を知っている時の対数尤度:

    log

    (n∏

    i=1

    g(xi |µzi ,Σzi )

    ).

    これの {µk ,Σk}k に関する最大化は簡単.EM-アルゴリズムでは zi の分布を推定し,対数尤度の zi に関する期待値を最大化.

    30 / 45

  • EM-アルゴリズムの手続き

    {zi}ni=1 の分布と θ = {πk , µk ,Σk}k を交互に推定.(同時に推定は難しいが片方を固定した場合,もう片方の推定は簡単)

    E-step: 隠れ変数 {zi}i の分布を推定.

    p(zi = k|xi ; θ̂[t−1]) =π̂kg(xi ; µ̂

    [t−1]k , Σ̂

    [t−1]k )∑K

    k′=1 π̂[t−1]k′ g(xi ; µ̂

    [t−1]k′ , Σ̂

    [t−1]k′ )

    .

    M-step: パラメータの推定.w (k)i = p(zi = k|xi ; θ̂[t−1])として,

    π̂[t]k =

    ∑ni=1 w

    (k)i

    n,

    µ̂[t]k =

    ∑ni=1 w

    (k)i xi

    n,

    Σ̂[t]k =

    ∑ni=1 w

    (k)i (xi − µ̂

    [t]k )(xi − µ̂

    [t]k )

    n.

    31 / 45

  • EM-アルゴリズムの意味

    M-stepでは,隠れ変数の分布を固定したもとでの重み付き尤度最大化を行っている.

    {µ̂k , Σ̂k , π̂k}k = argmaxθ={µk ,Σk ,πk}k

    n∑i=1

    K∑k=1

    w(k)i log(p(x = xi , zi = k|θ))

    = argmaxθ={µk ,Σk ,πk}k

    n∑i=1

    K∑k=1

    w(k)i log(g(xi ;µk ,Σk)πk).

    右辺の maxの中身を L0(θ||θ[t−1])とおく.

    32 / 45

  • L0 は次のように展開できる.

    L0(θ||θ[t−1]) =n∑

    i=1

    K∑k=1

    w(k)i log(p(xi |zi = k; θ)πk)

    =n∑

    i=1

    K∑k=1

    w(k)i log(

    k∑k′=1

    p(xi |zi = k ′; θ)πk′)

    +n∑

    i=1

    K∑k=1

    w(k)i log

    (p(xi |zi = k; θ)πk∑k

    k′=1 p(xi |zi = k ′; θ)πk′

    )

    =n∑

    i=1

    K∑k=1

    w(k)i log(p(xi |θ)) +

    n∑i=1

    K∑k=1

    w(k)i log (p(zi = k|xi , θ))

    =n∑

    i=1

    log(p(xi |θ)) +n∑

    i=1

    K∑k=1

    w(k)i log (p(zi = k|xi , θ)) .

    右辺第二項を −L1(θ||θ[t−1])とおくと,次が成り立つ:n∑

    i=1

    log(p(xi |θ)) ≥ L0(θ||θ[t−1]) + L1(θ||θ[t−1]).

    33 / 45

  • ここで

    L(θ||θ[t−1]) =−n∑

    i=1

    K∑k=1

    w(k)i log (p(zi = k|xi , θ))

    =n∑

    i=1

    K∑k=1

    w(k)i log

    (w

    (k)i

    p(zi = k|xi , θ)

    )−

    n∑i=1

    K∑k=1

    w(k)i log(w

    (k)i ).

    今,w (k)i = p(zi = k|xi , θ[t−1])であるので,

    L1(θ||θ[t−1]) =n∑

    i=1

    KL(p(zi |xi , θ[t−1])||p(zi |xi , θ)

    )−

    n∑i=1

    K∑k=1

    w(k)i log(w

    (k)i )

    となる.ここで,KL(·||·)は KL-ダイバージェンスである.KL-ダイバージェンスは非負なので,

    L1(θ||θ[t−1])− L1(θ[t−1]||θ[t−1]) =n∑

    i=1

    KL(p(zi |xi , θ[t−1])||p(zi |xi , θ)

    )≥ 0 (∀θ)

    である.

    34 / 45

  • 以上より,対数尤度は

    n∑i=1

    log(p(xi |θ)) ≥ L0(θ||θ[t−1]) + L1(θ||θ[t−1])

    で下から抑えられる.M-Stepで第一項 L0(θ||θ[t−1])を最大化することで,

    L0(θ[t]||θ[t−1]) + L1(θ[t]||θ[t−1])− (L0(θ[t−1]||θ[t−1]) + L1(θ[t−1]||θ[t−1]))≥L0(θ[t]||θ[t−1])− L0(θ[t−1]||θ[t−1]) ≥ 0

    となるので,EM-アルゴリズムは尤度の下界を単調に増大させることに対応する.

    このような方法を下界最大化アルゴリズムと呼ぶ.※去年のスライドはこの部分が間違っています.

    35 / 45

  • EM-アルゴリズムの注意点

    EM-アルゴリズムは本当の大域的最適解には到達しない.

    むしろ,到達しないほうが良い.

    なぜなら,ある一点に µk をおいて,Σk → O と極限を取れば尤度は無限大になるからである.

    しかし,Σk = O なる解は完全に過適合しており,推定量としては望ましくない.

    EM-アルゴリズムはちょうどよい局所最適解を求める方法とみなすことができる.

    36 / 45

  • Rによる混合ガウス分布のクラスタリング

    � �library(mclust)

    result

  • −2 −1 0 1

    −0.

    50.

    51.

    52.

    5

    EII

    −2 −1 0 1

    −0.

    50.

    51.

    52.

    5

    VII

    −2 −1 0 1

    −0.

    50.

    51.

    52.

    5

    EEE

    −2 −1 0 1

    −0.

    50.

    51.

    52.

    5

    VVV

    38 / 45

  • クラスタ数設定

    クラスタ数K はいくつ?クラスタ数が事前にわからない場合,データから推定する必要がある.

    Rの関数Mclustでは「BIC」が最良のモデル (クラスタ数) を用いる.

    BIC:これまで観測したデータと同じ分布にしたがうデータを独立に発生させた時に,それにどれだけよく当てはまるかを推定した量.AICと同様,過適合を防ぐためのモデル選択規準.

    本来は混合モデルに安易に BICを当てはめるのは間違いだが,Mclustではこれがデフォルトになっている.

    39 / 45

  • 構成

    1 階層的クラスタリング

    2 k-means法

    3 混合ガウスモデル:EM-アルゴリズム

    4 TOPIX CORE 30銘柄のクラスタリング

    40 / 45

  • TOPIX CORE 30銘柄時系列

    TOPIX CORE 30指標に含まれる 30銘柄.

    過去 250日分 (2013/6/28–2014/7/4) の始値,安値,高値,終値 (日足) が格納されている.

    今回は始値/終値を日にちごとに計算し,時系列を構成.

    41 / 45

  • TOPIX CORE 30: 階層的クラスタリング

    ソフ

    トバ

    ンク

    パナ

    ソニ

    ック

    KD

    DI

    東芝

    ソニ

    ー 三菱

    地所

    野村

    ホー

    ルデ

    ィン

    グス

    みず

    ほフ

    ィナ

    ンシ

    ャル

    グル

    ープ

    三菱

    UF

    Jフ

    ィナ

    ンシ

    ャル

    ・グ

    ルー

    三井

    住友

    フィ

    ナン

    シャ

    ルグ

    ルー

    花王

    アス

    テラ

    ス製

    ファ

    ナッ

    信越

    化学

    工業

    小松

    製作

    東京

    海上

    ホー

    ルデ

    ィン

    グス

    日本

    電信

    電話

    エヌ

    ・テ

    ィ・

    ティ

    ・ド

    コモ

    日本

    たば

    こ産

    セブ

    ン&

    アイ

    ・ホ

    ール

    ディ

    ング

    東日

    本旅

    客鉄

    三井

    物産

    三菱

    商事

    日産

    自動

    キヤ

    ノン

    本田

    技研

    工業

    武田

    薬品

    工業

    トヨ

    タ自

    動車

    新日

    鐵住

    日立

    製作

    0.10

    0.15

    0.20

    0.25

    0.30

    0.35

    0.40

    Cluster Dendrogram

    hclust (*, "ward.D")dist(topix30)

    Height

    42 / 45

  • TOPIX CORE 30: 主成分分析

    混合ガウスを当てはめるのに 250次元は高すぎるので,主成分分析で低次元に落としてからクラスタリング.

    -4 -3 -2 -1 0 1

    -2

    -1

    01

    2

    PC1

    PC2

    日本たばこ産業

    セブン&アイ・ホールディングス信越化学工業

    花王

    武田薬品工業

    アステラス製薬

    新日鐵住金

    小松製作所

    日立製作所

    東芝

    パナソニック

    ソニー

    ファナック

    日産自動車トヨタ自動車

    本田技研工業

    キヤノン

    三井物産

    三菱商事

    三菱UFJフィナンシャル・グループ三井住友フィナンシャルグループ

    みずほフィナンシャルグループ

    野村ホールディングス

    東京海上ホールディングス

    三菱地所

    東日本旅客鉄道

    日本電信電話KDDI

    エヌ・ティ・ティ・ドコモ

    ソフトバンク

    43 / 45

  • TOPIX CORE 30: 混合ガウス分布

    第三主成分スコアまでを用いてクラスタリング.

    1 4 5 3 2

    みずほフィナンシャルグループ

    野村ホールディングス

    東芝

    三菱UFJフィナンシャル・グループ

    三井住友フィナンシャルグループ

    アステラス製薬

    花王

    新日鐵住金

    ソニー

    KDDI

    三菱地所

    パナソニック

    ソフトバンク

    本田技研工業

    武田薬品工業

    ファナック

    東日本旅客鉄道

    日立製作所

    セブン&アイ・ホールディングス

    トヨタ自動車

    キヤノン

    エヌ・ティ・ティ・ドコモ

    信越化学工業

    日本たばこ産業

    小松製作所

    三菱商事

    東京海上ホールディングス

    日本電信電話

    三井物産

    日産自動車

    5つのクラスタへの寄与率を計算.そのヒートマップをプロット. 44 / 45

  • 講義情報ページ

    http://www.is.titech.ac.jp/~s-taiji/lecture/2015/dataanalysis/

    dataanalysis.html

    45 / 45

    階層的クラスタリングk-means法混合ガウスモデル:EM-アルゴリズムTOPIX CORE 30銘柄のクラスタリング