聚类分析:选择合适的聚类算法

用 Python 练习机器学习面试题

Lisa Stuart

Data Scientist

聚类算法

  • 特征 >> 样本数
  • 训练更具挑战
  • 依赖距离计算
  • 最常用的无监督技术
用 Python 练习机器学习面试题

聚类的实际应用

  • 客户细分
  • 文档分类
  • 保险/交易欺诈检测
  • 图像分割
  • 异常检测
  • 以及更多…
用 Python 练习机器学习面试题

距离度量:曼哈顿(出租车)距离

曼哈顿图

1 https://en.wikipedia.org/wiki/Taxicab_geometry
用 Python 练习机器学习面试题

距离度量:欧氏距离

欧氏距离图

1 http://rosalind.info/glossary/euclidean-distance/
用 Python 练习机器学习面试题

K-means

K-means 步骤

  1. 初始质心
  2. 将每个观测分配到最近质心
  3. 计算新质心
  4. 重复步骤 2 和 3
1 http://sherrytowers.com/2013/10/24/k-means-clustering/
用 Python 练习机器学习面试题

层次凝聚聚类

层次聚类树状图

1 https://www.datanovia.com/en/lessons/agglomerative-hierarchical-clustering/
用 Python 练习机器学习面试题

凝聚聚类的连接方式

  • Ward 连接
  • 最大/完全连接
  • 平均连接
  • 单连接
用 Python 练习机器学习面试题

选择聚类算法

簇间距离

  • 评估簇稳定性
  • K-means 与 HC 使用欧氏距离
  • 簇间与簇内距离

"合适的相异度度量对聚类成功远比算法选择更重要。"——引自 统计学习要素

1 https://slideplayer.com/slide/8363774/
用 Python 练习机器学习面试题

聚类函数

函数/方法 返回
sklearn.cluster.Kmeans K-Means 聚类算法
sklearn.cluster.AgglomerativeClustering 凝聚聚类算法
kmeans.inertia_ 样本到最近簇中心的平方和距离
scipy.cluster.hierarchy 作为 sch 用于树状图的层次聚类
sch.dendrogram() 树状图函数
用 Python 练习机器学习面试题

Passons à la pratique !

用 Python 练习机器学习面试题

Preparing Video For Download...