大綱
監督式學習與非監督式學習
機器學習依是否有「標準答案」可分成兩大類。
一種是監督式學習的資料帶有正確標籤,模型學的是輸入與答案之間的對應關係;
另一種是「非監督式學習」則沒有任何標籤,目標是讓演算法自行從資料的內在結構中找出規律。
三種常用非監督式分群演算法
分群(clustering)就是非監督式學習中最具代表性的任務——在沒有人事先告知分類的情況下,依資料點彼此的相似程度,自動將相近的歸為同一群、相異的分開。它廣泛用於顧客分眾、影像分割、異常偵測等場景。
在眾多分群方法中,最常被提及與使用的三種,分別代表三種不同的分群思路:以「中心」為基礎的 K-means、以「層次」為基礎的階層式分群(Hierarchical Clustering),以及以「密度」為基礎的 DBSCAN。
- K-means 從群的「中心」出發。它假設每一群都是大小相近的球狀集合,先選定 k 個群中心,將每個資料點分配給最近的中心,再依分配結果更新中心位置,反覆到穩定為止。特色是速度快、概念直觀、容易擴展到大量資料;但必須事先指定群數 k,而且只看點到中心的直線距離,因此遇到月牙形、環形這類非球狀的群就會分錯,對離群值也相當敏感。
- 階層式分群關注群與群之間的「層次」關係。一開始每個資料點各自成群,接著反覆合併距離最近的兩群,過程會形成一棵樹狀結構(dendrogram),最後依需要的群數從某個高度切開。它不需隨機初始化,結果穩定可重現,還能呈現資料的層次脈絡,方便事後決定分成幾群;代價是計算量大,資料筆數一多速度就明顯變慢,較不適合超大型資料集。
- DBSCAN 則以「密度」定義群。它不需事先指定群數,而是把鄰近範圍內聚集夠多點的區域視為同一群,由密集核心向外擴張連成完整的群,至於散落在稀疏地帶、無法歸入任何群的點則標記為雜訊。這讓它能找出任意形狀的群、自動排除離群值,特別適合形狀不規則的資料;挑戰在於需謹慎設定鄰域半徑 ε 與最小點數 minPts,且當各群密度差異很大時,單一組參數往往難以同時照顧稀疏與密集的區域。
簡言之,這三種方法分別從中心、層次、密度三個角度切入:K-means 快速但侷限於規則形狀,階層式穩定且具層次但成本較高,DBSCAN 擅長任意形狀與雜訊但對參數敏感。實務上常依資料的形狀、規模與是否含雜訊來選擇,或併用多種方法相互驗證。
三種非監督式分群演算法互動比較
非監督式學習 · Clustering
三種分群演算法互動比較
切換資料集形狀、調整參數,即時觀察 K-means、階層式分群(Hierarchical)與 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 |



