叢集分析:選對叢集演算法

用 Python 練習機器學習面試題

Lisa Stuart

Data Scientist

叢集演算法

  • 特徵 >> 觀測值
  • 訓練模型更具挑戰
  • 仰賴距離計算
  • 最常用的非監督技術
用 Python 練習機器學習面試題

叢集的實務應用

  • 客群分群
  • 文件分類
  • 保險/交易詐欺偵測
  • 影像分割
  • 異常偵測
  • 其他應用眾多…
用 Python 練習機器學習面試題

距離度量:Manhattan(計程車)距離

曼哈頓距離圖

1 https://en.wikipedia.org/wiki/Taxicab_geometry
用 Python 練習機器學習面試題

距離度量:Euclidian 距離

Euclidian 距離圖

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

階層式凝聚叢集(Agglomerative)

階層式叢集樹狀圖

1 https://www.datanovia.com/en/lessons/agglomerative-hierarchical-clustering/
用 Python 練習機器學習面試題

凝聚式叢集的連結方式

  • Ward 連結
  • 最大/完全連結
  • 平均連結
  • 單一連結
用 Python 練習機器學習面試題

選擇叢集演算法

叢集距離

  • 叢集穩定度評估
  • K-means 與 HC 使用 Euclidian 距離
  • 叢間與叢內距離

「選對不相似度量,對叢集成功遠比選哪個叢集演算法更重要。」— 摘自 Elements of Statistical Learning

1 https://slideplayer.com/slide/8363774/
用 Python 練習機器學習面試題

叢集相關函式

Function/method returns
sklearn.cluster.Kmeans K-Means 叢集演算法
sklearn.cluster.AgglomerativeClustering 凝聚式叢集演算法
kmeans.inertia_ 各觀測到最近叢集中心的 SS 距離
scipy.cluster.hierarchy as sch 產生樹狀圖的階層式叢集
sch.dendrogram() 樹狀圖函式
用 Python 練習機器學習面試題

一起來練習吧!

用 Python 練習機器學習面試題

Preparing Video For Download...