叢集分析:選擇最佳叢集數

用 Python 練習機器學習面試題

Lisa Stuart

Data Scientist

尋找最佳 k 的方法

  • Silhouette 方法
  • Elbow 方法
用 Python 練習機器學習面試題

Silhouette 係數

  • 由 2 個分數組成
    • 每個觀測值與所有其他點的平均距離:
      • 與同一叢集內
      • 與最近的其他叢集
用 Python 練習機器學習面試題

Silhouette 係數值

  • 介於 -1 到 1
    • 1
      • 與同叢集內其他點非常接近
      • 與其他叢集的點非常遠
    • -1
      • 不接近同叢集內其他點
      • 反而接近其他叢集的點
    • 0
      • 代表叢集彼此重疊
用 Python 練習機器學習面試題

Silhouette 分數

Silhouette 分數圖

1 https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html
用 Python 練習機器學習面試題

Elbow 方法

Elbow 方法圖

1 https://www.datanovia.com/en/lessons/determining-the-optimal-number-of-clusters-3-must-know-methods/
用 Python 練習機器學習面試題

最佳 k 的選擇常用函式

Function/method returns
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 練習機器學習面試題

一起來練習吧!

用 Python 練習機器學習面試題

Preparing Video For Download...