クラスタ分析

基本的な考え方と階層的方法

(Press ? for help, n and p for next and previous slide)

村田 昇

講義概要

  • 第1回 : 基本的な考え方と階層的方法
  • 第2回 : 非階層的方法と分析の評価

クラスタ分析の考え方

クラスタ分析

  • クラスタ分析 (cluster analysis) の目的

    個体の間に隠れている 集まり=クラスタ を個体間の“距離”にもとづいて発見する方法

  • 個体間の類似度・距離(非類似度)を定義
    • 同じクラスタに属する個体どうしは似通った性質
    • 異なるクラスタに属する個体どうしは異なる性質
  • さらなるデータ解析やデータの可視化に利用
  • 教師なし学習の代表的な手法の一つ

クラスタ分析の例

  • 総務省統計局より取得した都道府県別の社会生活統計指標の一部
    • 総務省 https://www.e-stat.go.jp/SG1/estat/List.do?bid=000001083999&cycode=0

      都道府県名 :
      地方区分 :
      森林面積割合: 森林面積割合 (%) 2014年
      農業産出額 : 就業者1人当たり農業産出額(販売農家)(万円) 2014年
      人口割合 : 全国総人口に占める人口割合 (%) 2015年
      土地生産性 : 土地生産性(耕地面積1ヘクタール当たり)(万円) 2014年
      商品販売額 : 商業年間商品販売額[卸売業+小売業](事業所当たり)(百万円) 2013年
      
都道府県名 地方区分 森林面積割合 農業算出額 人口割合 土地生産性 商品販売額
北海道 北海道 67.9 1150.6 4.23 96.8 283.3
青森県 東北 63.8 444.7 1.03 186.0 183.0
岩手県 東北 74.9 334.3 1.01 155.2 179.4
宮城県 東北 55.9 299.9 1.84 125.3 365.9
秋田県 東北 70.5 268.7 0.81 98.5 153.3
山形県 東北 68.7 396.3 0.88 174.1 157.5
福島県 東北 67.9 236.4 1.51 127.1 184.5
茨城県 関東 31.0 479.0 2.30 249.1 204.9
栃木県 関東 53.2 402.6 1.55 199.6 204.3
群馬県 関東 63.8 530.6 1.55 321.6 270.0
埼玉県 関東 31.9 324.7 5.72 247.0 244.7
千葉県 関東 30.4 565.5 4.90 326.1 219.7
東京都 関東 34.8 268.5 10.63 404.7 1062.6
神奈川県 関東 38.8 322.8 7.18 396.4 246.1
新潟県 中部 63.5 308.6 1.81 141.9 205.5

js_cluspairs.png

Figure 1: 散布図

js_pcaplot.png

Figure 2: 主成分得点による散布図

js_clusplot.png

Figure 3: 散布図上のクラスタ構造 (クラスタ分析の概念図)

クラスタ分析の考え方

  • 階層的方法
    • データ点およびクラスタの間に 距離 を定義
    • 距離に基づいてグループ化
      • 近いものから順にクラスタを 凝集
      • 近いものが同じクラスタに残るように 分割
  • 非階層的方法
    • クラスタの数を事前に指定
    • クラスタの 集まりの良さ を評価する損失関数を定義
    • 損失関数を最小化するようにクラスタを形成

階層的方法

凝集的クラスタリング

  1. データ・クラスタ間の距離を定義する
    • データ点とデータ点の距離
    • クラスタとクラスタの距離
  2. データ点およびクラスタ間の距離を求める
  3. 最も近い2つを統合し新たなクラスタを形成する
    • データ点とデータ点
    • データ点とクラスタ
    • クラスタとクラスタ
  4. クラスタ数が1つになるまで2-3の手続きを繰り返す

事例

  • 社会生活統計指標の一部(関東地方)

    都道府県名 森林面積割合 農業産出額 人口割合 土地生産性 商品販売額
    茨城県 31.0 479.0 2.30 249.1 204.9
    栃木県 53.2 402.6 1.55 199.6 204.3
    群馬県 63.8 530.6 1.55 321.6 270.0
    埼玉県 31.9 324.7 5.72 247.0 244.7
    千葉県 30.4 565.5 4.90 326.1 219.7
    東京都 34.8 268.5 10.63 404.7 1062.6
    神奈川県 38.8 322.8 7.18 396.4 246.1

10_hclst0.png

Figure 4: 凝集的クラスタリング

10_hclst1.png

Figure 5: クラスタリングの手続き (その1)

10_hclst2.png

Figure 6: クラスタリングの手続き (その2)

10_hclst3.png

Figure 7: クラスタリングの手続き (その3)

10_hclst4.png

Figure 8: クラスタリングの手続き (その4)

10_hclst5.png

Figure 9: クラスタリングの手続き (その5)

10_hclst6.png

Figure 10: クラスタリングの手続き (その6)

10_dendro.png

Figure 11: デンドログラムによるクラスタ構造の表示

データ間の距離

データ間の距離

  • データ : 変数の値を成分としてもつベクトル

    \begin{equation} \boldsymbol{x}=(x_{1},\dotsc,x_{d})^{\mathsf{T}}, \boldsymbol{y}=(y_{1},\dotsc,y_{d})^{\mathsf{T}}\in\mathbb{R}^{d} \end{equation}
  • 距離 : \(d(\boldsymbol{x},\boldsymbol{y})\)
  • 代表的なデータ間の距離
    • Euclid 距離 (ユークリッド ; Euclidean distance)
    • Manhattan 距離 (マンハッタン ; Manhattan distance)
    • Minkowski 距離 (ミンコフスキー ; Minkowski distance)

Euclid 距離

  • 最も一般的な距離
  • 各成分の差の2乗和の平方根 (2ノルム)

    \begin{equation} d(\boldsymbol{x},\boldsymbol{y}) =\sqrt{(x_{1}-y_{1})^{2}+\dotsb+(x_{d}-y_{d})^{2}} \end{equation}

Manhattan 距離

  • 後述する Minkowski 距離の \(p=1\) の場合
  • 格子状に引かれた路に沿って移動するときの距離

    \begin{equation} d(\boldsymbol{x},\boldsymbol{y}) =|x_{1}-y_{1}|+\dotsb+|x_{d}-y_{d}| \end{equation}

Minkowski 距離

  • Euclid 距離を \(p\) 乗に一般化した距離
  • 各成分の差の \(p\) 乗和の \(p\) 乗根(\(p\)-ノルム)

    \begin{equation} d(\boldsymbol{x},\boldsymbol{y}) =\bigl\{|x_{1}-y_{1}|^{p}+\dotsb+|x_{d}-y_{d}|^{p}\bigr\}^{1/p} \end{equation}

その他の距離

  • 類似度や乖離度などデータ間に自然に定義されるものを用いることは可能
    • 語句の共起 (同一文書に現れる頻度・確率)
    • 会社間の取引量 (売上高などで正規化が必要)
  • 擬似的な距離でもアルゴリズムは動く

実習

クラスタ間の距離

クラスタ間の距離

  • クラスタ : いくつかのデータ点からなる集合

    \begin{equation} C_{a}=\left\{\boldsymbol{x}_{i}|i\in\Lambda_{a}\right\},\; C_{b}=\left\{\boldsymbol{x}_{j}|j\in\Lambda_{b}\right\},\quad C_{a}\cap C_{b}=\emptyset \end{equation}
  • 2つのクラスタ間の距離 : \(D(C_{a},C_{b})\)
    • データ点の距離から陽に定義する方法
    • クラスタの統合にもとづき再帰的に定義する方法
  • 代表的なクラスタ間の距離
    • 最短距離法 (単連結法 ; single linkage method)
    • 最長距離法 (完全連結法 ; complete linkage method)
    • 群平均法 (average linkage method)

最短距離法

  • 最も近い対象間の距離を用いる方法

    \begin{equation} D(C_{a},C_{b}) =\min_{\boldsymbol{x}\in C_{a},\;\boldsymbol{y}\in C_{b}} d(\boldsymbol{x},\boldsymbol{y}) \end{equation}
  • 統合前後のクラスタ間の関係

    \begin{equation} D(C_{a}+ C_{b}, C_{c}) =\min\bigl\{D(C_{a},C_{c}), D(C_{b},C_{c})\bigr\} % =\min\left\{D(C_{a},C_{c}), D(C_{b},C_{c})\right\} \end{equation}
    • \(A+B\)は集合\(A,B\)の直和を表す.

最長距離法

  • 最も遠い対象間の距離を用いる方法

    \begin{equation} D(C_{a},C_{b}) =\max_{\boldsymbol{x}\in C_{a},\;\boldsymbol{y}\in C_{b}} d(\boldsymbol{x},\boldsymbol{y}) \end{equation}
  • 統合前後のクラスタ間の関係

    \begin{equation} D(C_{a}+ C_{b}, C_{c}) =\max\bigl\{D(C_{a},C_{c}), D(C_{b},C_{c})\bigr\} % =\max\left\{D(C_{a},C_{c}), D(C_{b},C_{c})\right\} \end{equation}

群平均法

  • 全ての対象間の平均距離を用いる方法

    \begin{equation} D(C_{a},C_{b}) =\frac{1}{|C_{a}||C_{b}|} \sum_{\boldsymbol{x}\in C_{a},\;\boldsymbol{y}\in C_{b}} d(\boldsymbol{x},\boldsymbol{y}) \end{equation}
    • ただし \(|C_{a}|\), \(|C_{b}|\) はクラスタ内の要素の数を表す
  • 統合前後のクラスタ間の関係

    \begin{equation} D(C_{a}+ C_{b}, C_{c}) =\frac{|C_{a}|D(C_{a},C_{c})+|C_{b}|D(C_{b},C_{c})}{|C_{a}|+|C_{b}|} \end{equation}

距離計算に関する注意

  • データの性質に応じて距離は適宜使い分ける
    • データ間の距離の選択
    • クラスタ間の距離の選択
  • 変数の標準化は必要に応じて行う
    • 物理的な意味合いを積極的に利用する場合はそのまま
    • 単位の取り方などによる分析の不確定性を避ける場合は平均0,分散1に標準化
  • データの性質を鑑みて適切に前処理

実習

次回の予定

  • 第1回 : 基本的な考え方と階層的方法
  • 第2回 : 非階層的方法と分析の評価