階層の可視化

Pythonで学ぶ教師なし学習

Benjamin Wilson

Director of Research at lateral.io

可視化は洞察を伝える

  • 「t-SNE」: データセットを2Dに写像(後で)
  • 「階層的クラスタリング」(本動画)
Pythonで学ぶ教師なし学習

集団の階層

  • 生物の集団は階層を成す
  • クラスタは入れ子になる

 

動物の階層ツリー

Pythonで学ぶ教師なし学習

ユーロビジョンの採点データセット

  • 各国がユーロビジョン2016の曲に得点を付与
  • スコアの2次元配列
  • 行が国、列が曲

 

ユーロビジョンのデータ

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

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

ユーロビジョンの階層的クラスタリング

Pythonで学ぶ教師なし学習

階層的クラスタリング

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

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

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

ユーロビジョンの階層的クラスタリング

Pythonで学ぶ教師なし学習

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

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

ユーロビジョン階層的クラスタリングの1クラスタ

Pythonで学ぶ教師なし学習

デンドログラムを段階的に

ユーロビジョン階層的クラスタリングの1クラスタ

Pythonで学ぶ教師なし学習

デンドログラムを段階的に

ギリシャ/キプロスのクラスタを強調したユーロビジョン階層的クラスタリングの1クラスタ

Pythonで学ぶ教師なし学習

デンドログラムを段階的に

ブルガリア/ギリシャ/キプロスのクラスタを強調したユーロビジョン階層的クラスタリングの1クラスタ

Pythonで学ぶ教師なし学習

デンドログラムを段階的に

モルドバ/ロシアのクラスタを強調したユーロビジョン階層的クラスタリングの1クラスタ

Pythonで学ぶ教師なし学習

デンドログラムを段階的に

モルドバ/ロシア/アルメニアのクラスタを強調したユーロビジョン階層的クラスタリングの1クラスタ

Pythonで学ぶ教師なし学習

デンドログラムを段階的に

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

Pythonで学ぶ教師なし学習

デンドログラムを段階的に

ユーロビジョンの階層的クラスタリング

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...