可视化层级结构

Python 中的无监督学习

Benjamin Wilson

Director of Research at lateral.io

可视化传达洞见

  • "t-SNE":将数据集映射到二维(稍后)
  • "层次聚类"(本视频)
Python 中的无监督学习

群组的层级

  • 生物群可形成层级
  • 簇彼此嵌套

 

动物的层级树

Python 中的无监督学习

欧洲歌唱大赛评分数据集

  • 各国为2016年欧洲歌唱大赛的歌曲打分
  • 分数的二维数组
  • 行是国家,列是歌曲

 

欧洲歌唱大赛数据

1 https://www.eurovision.tv/page/results
Python 中的无监督学习

投票国家的层次聚类

欧洲歌唱大赛的层次聚类

Python 中的无监督学习

层次聚类

  • 每个国家各自成簇
  • 每步合并最近的两个簇
  • 持续到所有国家合为一簇
  • 这称为"凝聚型"层次聚类
Python 中的无监督学习

层次聚类的树状图

  • 自下而上阅读
  • 竖线表示簇

欧洲歌唱大赛的层次聚类

Python 中的无监督学习

层次聚类的树状图

  • 自下而上阅读
  • 竖线表示簇

欧洲歌唱大赛层次聚类的一个簇

Python 中的无监督学习

树状图:逐步解析

欧洲歌唱大赛层次聚类的一个簇

Python 中的无监督学习

树状图:逐步解析

高亮希腊/塞浦路斯簇的欧洲歌唱大赛层次聚类一个簇

Python 中的无监督学习

树状图:逐步解析

高亮保加利亚/希腊/塞浦路斯簇的欧洲歌唱大赛层次聚类一个簇

Python 中的无监督学习

树状图:逐步解析

高亮摩尔多瓦/俄罗斯簇的欧洲歌唱大赛层次聚类一个簇

Python 中的无监督学习

树状图:逐步解析

高亮摩尔多瓦/俄罗斯/亚美尼亚簇的欧洲歌唱大赛层次聚类一个簇

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 中的无监督学习

Passons à la pratique !

Python 中的无监督学习

Preparing Video For Download...