聚类分析:选择最优簇数

用 Python 练习机器学习面试题

Lisa Stuart

Data Scientist

最优 k 的方法

  • 轮廓系数法(Silhouette)
  • 肘部法(Elbow)
用 Python 练习机器学习面试题

轮廓系数

  • 由 2 个得分构成
    • 每个观测与他者的平均距离:
      • 同一簇内
      • 最近的其他簇内
用 Python 练习机器学习面试题

轮廓系数取值

  • 介于 -1 与 1
    • 1
      • 与同簇样本很近
      • 与他簇样本很远
    • -1
      • 与同簇样本不近
      • 与他簇样本很近
    • 0
      • 表示簇有重叠
用 Python 练习机器学习面试题

轮廓分数

轮廓分数图

1 https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html
用 Python 练习机器学习面试题

肘部法

肘部法图

1 https://www.datanovia.com/en/lessons/determining-the-optimal-number-of-clusters-3-must-know-methods/
用 Python 练习机器学习面试题

最优 k 选择常用函数

函数/方法 返回
sklearn.cluster.KMeans K-Means 聚类算法
sklearn.metrics.silhouette_score -1 到 1 的分数,衡量簇稳定性
kmeans.inertia_ 到最近簇中心的观测值平方和距离(SS)
range(start, stop) 从 start 到(不含)stop 的值列表
list.append(kmeans.inertia_) 将 inertia 值追加到列表
用 Python 练习机器学习面试题

¡Vamos a practicar!

用 Python 练习机器学习面试题

Preparing Video For Download...