核心主張
本文作者旨在介紹非監督式學習中的 K-Means 聚類演算法,並闡述其工作原理、應用場景及主要限制,進而引入 DBSCAN 與 HDBSCAN 等密度聚類方法,以克服 K-Means 在處理複雜資料結構時的不足,尤其推薦 HDBSCAN 作為更為穩健的解決方案。
文章摘要
本文首先介紹非監督式學習(Unsupervised Learning)的概念,指出其在無標籤資料中尋找隱藏結構的核心任務,而分群(Clustering)是其中最關鍵的問題。接著,文章深入探討 K-Means 分群演算法,這是一種透過重複迭代過程,將未標籤資料分組為不同集群(clusters)的方法。文中說明 K-Means 需預先指定集群的數量 k 值,並依據資料點與集群中心(centroids)的距離(如歐幾里得距離)進行分組。文章也介紹了選擇最佳 k 值常用的「肘部法則」(Elbow method),該方法透過計算集群內平方和(WCSS)的變化趨勢來判斷。K-Means 廣泛應用於各類資料分割任務,如顧客區隔和詐欺偵測。然而,作者也警示 K-Means 的局限性,例如對初始值敏感、難以處理非球形或密度不均的集群。為此,文章引入了密度分群演算法 DBSCAN,其優勢在於能發現任意形狀的集群且不需預設 k 值,並能識別雜訊點,但缺點是包含兩個超參數且難以處理密度不均的資料。最終,作者推薦 HDBSCAN,指出它能處理密度變化的集群,且在參數設定上更加簡化與穩健,建議在資料分析中優先嘗試 HDBSCAN。
機器學習中的 K-Means 分群及其進階應用
在當今數據驅動的時代,機器學習(Machine Learning)已成為我們理解市場、預測行為和制定策略的關鍵工具。機器學習大致可分為監督式學習(Supervised Learning)、非監督式學習(Unsupervised Learning)和強化學習(Reinforcement Learning)等類型。今天,我們將深入探討 K-Means 方法,它屬於非監督式學習的一個重要分支。
什麼是非監督式學習?
在許多模式識別問題中,我們擁有的訓練資料往往只是一組輸入向量 x,卻沒有對應的目標值或標籤。這意味著學習演算法必須自行在這些無標籤的資料中尋找內在結構。在非監督式學習中,分群(Clustering)可以說是最重要的問題之一。它的核心目標是從大量無標籤資料中發現隱藏的模式或群組。由於模型是「自學習」的,它在某些方面比監督式學習更為複雜,因為它必須從零開始構建知識。非監督式學習旨在創建資料點子集或群組,使同一個群組內的資料點彼此高度相似(同質性高),而不同群組之間的資料點則具有顯著差異(異質性高)。
【行銷洞察與應用】
在行銷領域,非監督式學習的價值體現在其「發現」能力。例如,當一家公司希望了解其顧客基礎,但沒有預先定義的顧客類別(如「高價值顧客」或「流失顧客」)時,非監督式學習就能派上用場。透過分析顧客的交易記錄、瀏覽行為等數據,演算法可以自動辨識出具有相似特徵的顧客群體,從而幫助行銷人員發掘潛在的市場區隔,並為這些區隔設計量身定制的行銷策略。
K-Means 分群演算法
K-Means 是一種非監督式學習演算法,其主要目的便是將無標籤的資料集分組為不同的集群(clusters)或子集。它透過重複的迭代過程,為預設的 k 個中心點(centroids)找到最佳位置,並將每個資料點分配給離它最近的 k 個中心點之一,進而形成各個集群。
那麼,這個分群過程是如何進行的呢?
模型的執行者需要指定一個超參數 k,它代表我們希望將資料分成多少個集群。所有的資料點都將根據它們與這些指定集群中心的距離來進行聚類。值得注意的是,k 的值是由研究者或分析人員自行決定的。這種在決定集群數量時採用的方法,屬於非階層式分群(non-hierarchical clustering)。
【如何計算距離?】
在 K-Means 中,距離是衡量資料點相似性的關鍵。常用的距離度量方法包括:
- 閔可夫斯基距離 (Minkowski Distance)
- 曼哈頓距離 (Manhattan City-Block Distance)
- 歐幾里得距離 (Euclidean Distance):這是最常用的一種,想像兩點之間直線的長度。
- 馬氏距離 (Mahalanobis Distance)
【如何選擇 k 值?】
選擇一個合適的 k 值對於 K-Means 的分群效果至關重要。雖然沒有單一方法被證明是絕對最優的,但「肘部法則」(Elbow method)是最受歡迎且廣泛採用的技術。
肘部法則利用「簇內平方和」(WCSS, Within Clusters Sum of Squares) 來評估不同 k 值下的分群效果。WCSS 計算每個集群中,所有資料點到其集群中心距離的平方和,然後將所有集群的這些平方和加總。其公式如下:
WCSS =
ΣPi ∈ Cluster1 distance(Pi, C1)2 + ΣPi ∈ Cluster2 distance(Pi, C2)2 + ΣPi ∈ Cluster3 distance(Pi, C3)2
其中,ΣPi ∈ Cluster1 distance(Pi, C1)2 表示簇 1 中每個資料點 Pi 到其簇中心 C1 距離的平方和,其餘項的意義亦相同。
當我們繪製 k 值與 WCSS 值的關係圖時,通常會看到隨著 k 值增加,WCSS 會逐漸減少,因為分成的集群越多,每個簇的內部會越緊密。然而,減少的速度會逐漸放緩,圖形會呈現出一個類似手臂彎曲的「肘部」。這個彎曲最明顯的點,通常被視為最佳的 k 值,因為在該點之後,增加 k 值所帶來的 WCSS 減少效益不再顯著。例如,原文圖示中,若肘部出現在 k=4 的位置,則建議選擇 4 個集群。
【K-Means 演算法的逐步實施】
- 步驟一: 決定要生成的簇的數量
k。 - 步驟二: 隨機選擇
k個資料點作為初始的簇中心點。 - 步驟三: 對於每個資料點,計算其與這
k個集群中心的距離。 - 步驟四: 將每個資料點分配給離它最近的簇中心所代表的集群。
- 步驟五: 根據步驟四中形成的簇,重新計算每個集群的中心點(通常是集群內所有資料點的平均值)。
- 步驟六: 重複步驟三至步驟五,直到集群中心點不再發生顯著移動,或達到預設的迭代次數。最終選擇集群內總變異數最小的聚類結果。
請記住:同一個集群內的資料點應高度同質,而不同集群之間的資料點應高度異質。
【K-Means 的應用場景】
K-Means 演算法廣泛應用於任何需要「分割」的領域。例如:
- 文件分類 (Document Classification):將大量文件根據內容主題自動分組。
- 顧客區隔 (Customer Segmentation):根據顧客的購買行為、人口統計資料等將顧客分成不同群體。
- 詐欺偵測 (Fraud Detection):識別異常交易模式,將其歸類為潛在的詐欺行為。
- 影像辨識 (Image Recognition):例如將影像中的相似像素分組。
【行銷策略與 K-Means 應用】
在行銷中,K-Means 最直接的應用就是「顧客區隔」。透過 K-Means,企業可以將龐大的顧客群體劃分為幾個有意義的子群體。例如:
- 高價值顧客:消費頻率高、客單價高的顧客。
- 潛力顧客:過去消費不高但近期活躍度增加的顧客。
- 流失風險顧客:近期活躍度下降的顧客。
對於這些不同區隔,行銷團隊可以制定高度個人化的溝通訊息、產品推薦和促銷活動。例如,針對高價值顧客提供獨家優惠和 VIP 服務;針對流失風險顧客則推出挽回活動。這不僅能提升行銷效率,也能改善顧客體驗,增強顧客忠誠度。
K-Means 的局限性與進階解決方案
儘管 K-Means 易於理解和實施,但它並非萬能。原文特別提到兩個重要警示:
- 「如果你缺乏業務知識,請不要過度依賴此方法。」 這強調了領域專業知識的重要性。僅憑演算法結果而無商業判斷,可能導致對顧客群體的誤讀或無意義的區隔。
- 「即使提供了正確的簇數量,K-Means 仍可能無法將資料分組為有用的集群。」 這指出 K-Means 在處理某些複雜資料結構時的內在弱點。它傾向於形成球形或類似大小的簇,對離群值敏感,且難以處理密度不均或任意形狀的簇。
那麼,在這種情況下我們該怎麼辦呢?這時候就需要考慮使用更進階的分群演算法,例如 HDBSCAN。
為了理解 HDBSCAN,我們首先要認識 DBSCAN。
DBSCAN:基於密度的聚類演算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基於密度的演算法,它假設集群是資料空間中高密度區域,這些高密度區域被低密度區域分隔開來。DBSCAN 有兩個核心參數:
- ε (epsilon):鄰域半徑,定義一個點周圍的「鄰域」範圍。
- n (min_samples):一個點要被視為核心點,其 ε 鄰域內所需的最少點數。
其工作原理大致如下:
- 從一個未訪問的點開始,檢查其 ε 鄰域內有多少個點。
- 如果點數大於等於
n,則此點被視為「核心點」(core point),並以此點為中心開始形成一個新的集群。所有其鄰域內的點(包括其他核心點和邊界點)都被納入此簇。 - 繼續擴展此簇,將所有從核心點直接可達的點(包括這些點自身是核心點)都包含進來,直到無法再擴展為止。
- 無法從任何核心點直接或間接到達的點,則被視為「離群值」(outliers)或「雜訊點」(noise points)。
- 重複上述過程,直到所有點都被訪問過。
DBSCAN 的優勢:
- 能夠發現任意形狀的簇:不像 K-Means 只能找球形集群。
- 無需預先指定簇的數量
k:這是它相對於 K-Means 的一大優勢。 - 具有雜訊概念,對離群值具穩健性:能自動識別並將雜訊點排除在集群之外。
DBSCAN 的缺點:
- 包含兩個超參數:
ε和n的選擇對結果影響很大,需要仔細調整。 - 難以有效處理密度變化的簇:如果資料集中的集群密度差異很大,DBSCAN 可能難以處理。
- 如果資料和尺度不被充分理解,選擇有意義的距離閾值
ε可能很困難。
HDBSCAN:克服密度變化的進階方法
HDBSCAN 是一種較新的演算法,由開發 DBSCAN 原始論文的部分研究人員所開發。他們的目標是讓演算法能夠處理密度變化的集群。最終,他們找到了一種方法,克服了 K-Means 和 DBSCAN 的缺點。
HDBSCAN 採用了一種基於密度的方法,對集群做出了較少的隱式假設。因此,它能夠處理不同密度的簇。好消息是,我們不再需要只設定兩個參數,而是能夠以更直觀或更少手動調整的方式來達到分群目的(原文暗示其參數設定可能更為簡化或更具彈性)。HDBSCAN 不僅僅是尋找具有特定形狀的集群,而是尋找資料中比周圍空間更密集的區域。
【行銷洞察與進階應用】
在一些複雜的行銷場景中,顧客的行為模式可能不會形成整齊劃一的球形分佈,甚至不同區隔的顧客密度也可能不同。例如,某個「早期採用者」群體的數量可能較少,但他們彼此之間高度互動,形成一個高密度的小簇;而另一個「價格敏感型」顧客群體可能數量龐大,但分佈較為分散,密度較低。K-Means 和傳統 DBSCAN 在這種情況下可能表現不佳。
HDBSCAN 的優勢在於它能自動偵測這些密度變化的集群,找出那些在局部區域內比周圍更密集的分群。這對於識別「利基市場」(niche markets)、分析社群網路中的「意見領袖群體」,或是偵測複雜的「詐欺團夥」等,都具有極高的應用價值。透過 HDBSCAN,我們可以發現更多細緻且具有商業價值的顧客群體,從而制定更精準、更有效的行銷策略。
原文明確建議:「在你的資料中,請始終優先嘗試 HDBSCAN。」 這是一個值得採納的實用建議,因為它在處理多樣性資料方面提供了更高的穩健性和靈活性。
總結比較
| 特徵 | K-Means | DBSCAN | HDBSCAN |
|---|---|---|---|
| 學習類型 | 非監督式學習 | 非監督式學習 | 非監督式學習 |
需預設 k 值 | 是 | 否 | 否 |
| 集群的形狀 | 傾向於球形或凸形 | 可發現任意形狀 | 可發現任意形狀 |
| 處理密度變化 | 困難,傾向於均勻密度 | 困難,傾向於均勻密度 | 擅長處理密度變化的集群 |
| 處理離群值 | 敏感,會將離群值歸入某個集群 | 穩健,可識別為雜訊點 | 穩健,可識別為雜訊點 |
| 參數數量 | 1 個 (k) | 2 個 ( ε , min_samples) | 參數調整更簡化/穩健 (原文未提供具體參數數量) |
| 初始值敏感性 | 敏感 | 不敏感 | 不敏感 |
從 K-Means 到 DBSCAN 再到 HDBSCAN,我們看到非監督式分群演算法在不斷演進,以應對日益複雜的資料結構和業務需求。K-Means 是一個很好的入門工具,但其簡潔性也帶來了局限性。當你的資料不符合 K-Means 的假設(例如,集群的形狀不規則或密度差異大)時,基於密度的演算法,特別是 HDBSCAN,就成為了更優的選擇。
在實際應用中,選擇哪種演算法並非一概而論。關鍵在於:
- 深入理解你的資料:資料的特性(分佈、密度、有無離群值)決定了哪種演算法更適合。
- 明確你的業務目標:你希望從聚類中獲得什麼樣的洞察?這些洞察如何轉化為可執行的行銷策略?
- 批判性思維:不要盲目相信演算法的輸出,始終將結果與業務背景結合起來進行驗證和解釋。
原始文章:
N. Dinçer (2021). K-Means Clustering in Machine Learning. Medium. https://nihandincer.medium.com/k-means-clustering-in-machine-learning-b825050258d8


