階層構造を可視化する

Pythonで学ぶ教師なし学習

Benjamin Wilson

Director of Research at lateral.io

可視化は分析結果を伝える方法

  • 「t-SNE」: データセットの2次元マップ(後ほど解説)
  • 「階層型クラスタリング」(この動画)
Pythonで学ぶ教師なし学習

グループの階層

  • 生物のグループは階層構造を形成できる
  • グループは互いに包含関係にある

動物の階層ツリー

Pythonで学ぶ教師なし学習

Eurovision得点に関するデータセット

  • Eurovision 2016で各国が、各楽曲に得点を付与
  • 得点の2次元配列
  • 行は国、列は曲

Eurovisionデータ

1 https://www.eurovision.tv/page/results
Pythonで学ぶ教師なし学習

投票国の階層的クラスタリング

Eurovision 階層型クラスタリング

Pythonで学ぶ教師なし学習

階層型クラスタリング

  • 各国はそれぞれ別々のクラスタから始まる
  • 各ステップで最も近い2つのクラスターが統合される
  • すべての国が1つのクラスターになるまで続く
  • これは「凝集型」階層クラスタリング
Pythonで学ぶ教師なし学習

階層型クラスタリングのデンドログラム

  • 下から上に読む
  • 縦線が各クラスタを表す

Eurovision 階層型クラスタリング

Pythonで学ぶ教師なし学習

階層型クラスタリングのデンドログラム

  • 下から上に読む
  • 縦線が各クラスタを表す

Eurovision階層型クラスタリングのクラスター例

Pythonで学ぶ教師なし学習

デンドログラムの流れ

Eurovision階層型クラスタリングの1つのクラスター

Pythonで学ぶ教師なし学習

デンドログラムの流れ

Eurovisionの階層的クラスタリングの1つのクラスター(ギリシャ/キプロスクラスターが強調されている)

Pythonで学ぶ教師なし学習

デンドログラムの流れ

ユーロビジョン階層型クラスタリングの1つのクラスター(ブルガリア/ギリシャ/キプロスクラスターが強調されている)

Pythonで学ぶ教師なし学習

デンドログラムの流れ

Eurovisionの階層的クラスタリングの1つのクラスター(モルドバ/ロシアのクラスターが強調されている)

Pythonで学ぶ教師なし学習

デンドログラムの流れ

Eurovisionの階層的クラスタリングの1つのクラスター(モルドバ/ロシア/アルメニアのクラスターが強調されている)

Pythonで学ぶ教師なし学習

デンドログラムの流れ

ギリシャ/キプロス/ブルガリア クラスターとモルドバ/ロシア/アルメニアの統合

Pythonで学ぶ教師なし学習

デンドログラムの流れ

Eurovision 階層型クラスタリング

Pythonで学ぶ教師なし学習

SciPyを使った階層型クラスタリング

  • samples(得点の配列)とcountry_namesがある場合
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import linkage, dendrogram

mergings = linkage(samples, method='complete')
dendrogram(mergings, labels=country_names, leaf_rotation=90, leaf_font_size=6) plt.show()
Pythonで学ぶ教師なし学習

練習しましょう!

Pythonで学ぶ教師なし学習

Preparing Video For Download...