三種非監督式分群演算法互動式比較

監督式學習與非監督式學習

機器學習依是否有「標準答案」可分成兩大類。
一種是監督式學習的資料帶有正確標籤,模型學的是輸入與答案之間的對應關係;
另一種是「非監督式學習」則沒有任何標籤,目標是讓演算法自行從資料的內在結構中找出規律。

三種常用非監督式分群演算法

分群(clustering)就是非監督式學習中最具代表性的任務——在沒有人事先告知分類的情況下,依資料點彼此的相似程度,自動將相近的歸為同一群、相異的分開。它廣泛用於顧客分眾、影像分割、異常偵測等場景。

在眾多分群方法中,最常被提及與使用的三種,分別代表三種不同的分群思路:以「中心」為基礎的 K-means、以「層次」為基礎的階層式分群(Hierarchical Clustering),以及以「密度」為基礎的 DBSCAN。

  1. K-means 從群的「中心」出發。它假設每一群都是大小相近的球狀集合,先選定 k 個群中心,將每個資料點分配給最近的中心,再依分配結果更新中心位置,反覆到穩定為止。特色是速度快、概念直觀、容易擴展到大量資料;但必須事先指定群數 k,而且只看點到中心的直線距離,因此遇到月牙形、環形這類非球狀的群就會分錯,對離群值也相當敏感。
  2. 階層式分群關注群與群之間的「層次」關係。一開始每個資料點各自成群,接著反覆合併距離最近的兩群,過程會形成一棵樹狀結構(dendrogram),最後依需要的群數從某個高度切開。它不需隨機初始化,結果穩定可重現,還能呈現資料的層次脈絡,方便事後決定分成幾群;代價是計算量大,資料筆數一多速度就明顯變慢,較不適合超大型資料集。
  3. DBSCAN 則以「密度」定義群。它不需事先指定群數,而是把鄰近範圍內聚集夠多點的區域視為同一群,由密集核心向外擴張連成完整的群,至於散落在稀疏地帶、無法歸入任何群的點則標記為雜訊。這讓它能找出任意形狀的群、自動排除離群值,特別適合形狀不規則的資料;挑戰在於需謹慎設定鄰域半徑 ε 與最小點數 minPts,且當各群密度差異很大時,單一組參數往往難以同時照顧稀疏與密集的區域。

簡言之,這三種方法分別從中心、層次、密度三個角度切入:K-means 快速但侷限於規則形狀,階層式穩定且具層次但成本較高,DBSCAN 擅長任意形狀與雜訊但對參數敏感。實務上常依資料的形狀、規模與是否含雜訊來選擇,或併用多種方法相互驗證。

三種非監督式分群演算法互動比較

非監督式分群演算法互動比較

非監督式學習 · Clustering

三種分群演算法互動比較

切換資料集形狀、調整參數,即時觀察 K-means、階層式分群(Hierarchical)與 DBSCAN 如何用不同方式劃分同一份資料。

資料集形狀

參數調整
3
14
4
雜訊點(僅 DBSCAN 標記,半透明顯示) 其他顏色代表不同群集

三種演算法的核心差異

K-means

假設群集是球狀、大小相近,將每個點分配到最近的群中心,反覆更新中心直到收斂。速度快、易理解,但需事先指定群數 k,且只認到中心的歐氏距離——碰到月牙、同心圓等非凸形狀就會切錯。

階層式分群(Hierarchical / Agglomerative)

從每個點各自成群開始,逐步合併距離最近的兩群,形成一棵樹狀結構(dendrogram),最後依需要的群數切開。不依賴隨機初始化,結果穩定,能呈現群與群之間的層次關係,但計算量大,不適合超大資料集。

DBSCAN

不需指定群數,依「密度」自動找群:在半徑 ε 內鄰居數達 minPts 的點為核心點,由核心點向外擴張連成群,無法歸入任何群的點標記為雜訊。能找出任意形狀的群並抗雜訊,但對 ε 與 minPts 敏感,且在密度差異大的資料上,單一 ε 難以兼顧稀疏與密集區。

對照表

面向K-means階層式DBSCAN
需預設群數是(k)是(切樹高度)
可處理非凸形狀普通
標記雜訊點
對離群值敏感
時間複雜度(約略)O(nki)O(n²~n³)O(n log n)~O(n²)
結果穩定性受初始值影響穩定穩定
主要參數k群數、連結方式ε、minPts
互動視覺化僅供教學示意:資料為合成、演算法為簡化實作(階層式採質心連結、DBSCAN 為標準密度擴張),分群結果用於展示行為差異,非生產級數值結果。