ELECTE 4.0 正式上線——AI Agent 登場。看看推出了什麼
數據與分析閱讀時間 18 分鐘

聚類分析:2026 年完整指南

了解何謂聚合式階層聚類法、其運作原理,以及如何將其應用於您的業務。這是一份附有 Python 範例的完整指南。

Agglomerative Hierarchical Clustering: Guida Completa 2026

用 AI 摘要這篇文章

您的 CRM 裡塞滿了聯絡人資料、電商訂單紀錄、行銷活動數據、客服工單,甚至還有不同團隊建立的 Excel 試算表。這些資料全都存在,也都很有用。但往往都混雜在一起。

對許多中小企業而言,問題不在於缺乏數據,而在於缺乏系統架構。零售經理希望了解哪些顧客的購買模式相似;營運主管希望掌握哪些產品會同步熱銷;財務團隊則希望區分出正常行為與值得關注的異常現象。若缺乏明確的方法,數據終將淪為資料庫,而非成為決策的指引。

這時就輪到凝聚式階層分群(agglomerative hierarchical clustering)登場了。這是一種機器學習技術,透過由下而上的方式建立階層結構,將觀測值組織成群組。這並非新技術,而是一種成熟的方法:早在1960年代就已提出,義大利在1985年一項社會經濟數據專案中就已應用此技術,將50個地區精簡為7個主要群集參考資料見此)。這一點很重要,因為它說明了一個簡單的道理:當數據看似混亂時,階層式分群可以揭示出可辨識的結構。

如果你想從更宏觀的角度了解企業如何運用數據,這篇關於企業數據分析的指南是絕佳的補充。


目錄

引言:從數據混亂到戰略清晰

週一早上。業務主管開啟 CRM 系統,行銷部門檢視著成效天差地遠的行銷活動,物流部門則通報產品周轉率難以預測。數據雖已備妥,卻缺乏一張有助決策的藍圖。

正是在這個時候,中小企業的管理者才開始提出正確的問題:哪些客戶的行為模式確實相似?哪些產品值得制定獨立的策略?哪些據點或業務領域應採用不同的管理邏輯,即使目前它們都匯總在同一份報告中?

凝聚式階層分群(agglomerative hierarchical clustering)能將這種混亂轉化為可辨識的結構。它不是一開始就強制套用事先定好的類別,而是依相似度組織元素,並逐步展示群組如何成形。這個結果不僅僅是統計上的練習,更是商業分群、營運優先順序及定位決策的實用支援。

對企業而言,重點不在於了解演算法的名稱。重點在於善用三項實務技巧:選擇適合自身情況的連結方式、閱讀樹狀圖時不被技術細節所困,以及掌握在何處截斷層級結構,以獲得對業務有用的聚類。

這正是學術導向與管理導向的聚類分析之間的差異所在。

如果你已經在進行分群、報表或企業數據分析以做出更快速、更具體的決策,這個方法能幫助你看見那些在Excel試算表中隱而不見的關聯。而透過像Electe這樣的工具,即使是沒有數據科學團隊的中小企業,也能將這套方法融入日常流程,從數據解讀到營運決策皆能適用。


什麼是聚類式層次聚類法?它是如何運作的?

凝聚式階層分群(agglomerative hierarchical clustering)是由下而上進行的。每一筆記錄一開始都自成一個群組,接著演算法比較彼此的相似度,將最接近的兩個元素合併,並重複同樣的步驟,直到建立出完整的階層結構。

對於中小企業而言,這種方法很有用,因為它反映了現實中的決策過程。起初,你還不知道究竟需要多少個細分市場。你只知道某些客戶的行為模式相似,某些產品的銷售模式可比,以及某些業務領域值得一併觀察。聚類分析能整理這些關聯性,而無需你立即確定群組的數量。


運作機制相當簡單:

  1. 每個觀測值最初都是獨立的。一位客戶、一項產品或一筆交易都是各自獨立的群集。
  2. 計算兩個元素或兩個群組之間的差異程度
  3. 依照所選規則合併最接近的群集
  4. 更新結構並重複比較過程。
  5. 持續進行直到形成一個單一的階層樹狀結構,展示所有可能的組合方式。

這裡有個常令人感到困惑的關鍵點。演算法並不會立即輸出「正確的 4 個群集」或「正確的 6 個區段」。它會先建立一個鄰域圖。至於要保留多少個群集,則是在之後,根據業務目標來解讀該層級結構時才決定。

舉個例子來說明。如果你正在分析客戶群,可能會發現有些客戶在購買頻率上相似,有些在平均消費額上相似,還有些則在季節性方面相似。聚類分析(agglomerative clustering)不會迫使你立即決定詳細程度。它既能讓你看到適合用於精準行銷活動的微型群組,也能讓你看到有助於制定預算、服務及商業優先順序的宏觀區隔。


它與其他方法有何不同

與 k-means 等方法相比,其實際差異很簡單。使用 k-means 時,你必須先決定要找出多少個聚類。而使用聚合式階層聚類法時,你會先建立一個階層結構,然後再決定何時停止。

對管理者而言,這帶來了很大的改變。這意味著可以從一個開放式問題出發,而非預先假設的答案。如果業務團隊懷疑存在不同類型的客戶,但尚不清楚具體數量,這種方法能提供更有價值的視角來討論策略。

它還有另一個令人欣賞之處:結果清晰易懂。你不僅能看到最終分配給各記錄的標籤,還能透過一個逐步展示群組如何形成的過程來理解。正是這種層級結構,讓此方法在企業決策中備受青睞,因為它將統計分析與具體決策相連結:即在何處將群組進行區分,才能獲得可運用的洞察。

實用原則:當你想在定義穩定的營運分群之前先探索數據結構時,就使用階層式分群。

如果你想將這種方法與其他適用於不同企業問題的機器學習演算法做比較,應該根據你需要做的決策來評估,而不僅僅是依技術本身。


距離度量與連結法:決定聚類結果的關鍵選擇

兩家企業可能使用相同的演算法,卻得到截然不同的分群結果。原因幾乎總是在於:如何衡量距離以及如何決定合併哪些群組


對中小企業的管理者而言,這並非技術上的細微差別。這是一個會影響營運成果的抉擇。它可能引導你建立出有助於行銷活動與定價策略的群組,也可能形成難以理解的群組,導致團隊無法加以運用。


第一個問題:你如何衡量相似度

距離度量用來衡量兩筆觀測值之間的差異程度。無論你分析的是客戶、產品還是門市,這都是演算法用來比對資料輪廓的規則。

最常見的有:

  • 歐幾里得距離。測量兩點之間的直線距離。適合處理彼此可比較的數值變數,例如營業額、購買頻率和平均客單價,前提是經過適當的標準化處理。
  • 曼哈頓距離。加總每個變數的絕對差值。當你需要一種對個別偏差不那麼敏感、更接近「區塊」邏輯的度量方式時效果不錯,這在某些營運資料集中很有用。

這正是常見錯誤的根源。如果某個變數的數值範圍遠大於其他變數,它最終將主導距離的計算。實際上,聚類分析幾乎只會依據該欄位進行。因此,在選擇連結法之前,應先確認資料是否已進行標準化處理。


第二個問題:如何將兩個叢集合併

連結法(linkage)接下來才會派上用場。它比較的不是兩個單一資料點,而是兩個已經形成的群組。

有個很好的比喻是這樣的:度量標準決定了你如何在地圖上測量兩家店鋪之間的距離;而連結性則決定了你如何評估兩整條連鎖店之間的距離。兩者有很大差異。

主要方法包括:

  • 單一連結法(Single linkage)。考量不同群集之間距離最近的兩個點。
  • 完全連結法(Complete linkage)。考量距離最遠的兩個點。
  • 平均連結法(Average linkage)。使用兩個群集中所有點之間距離的平均值。
  • Ward 法。合併能讓內部變異度增加最少的群集。


連結方法之比較

連結方法運作方式優點缺點適用情境

單連桿機構

使用兩個聚類點之間的最小距離

擷取漸進式連線

可能會形成緊密度較低的「鏈狀」叢集

高度關聯的模式,初步探索

完全連桿

使用兩個聚類之間點與點間的最大距離

產生更緊密的叢集

可能會將原本自然相鄰的群組過度分離

重視同質性的市場區隔

平均連結度

兩個聚類中點之間的距離為中等

不錯的折衷方案

對企業而言較難立即理解

平衡分析

沃德

將群組內變異數的增加降至最低

產生穩定且可讀的區隔

需要經過妥善處理的數值變數

客戶細分、商業分析

正確的選擇取決於你在公司內必須做出的決定,而非某種抽象的偏好。

如果你的目標是找出由漸進相似性連結起來的核心群組,單一連結法在探索階段可能會很有用。但如果你需要建立清楚的區隔,以便分配到不同的行銷活動、價目表或服務等級,在許多情況下完全連結法Ward 法會產生更容易解讀的群組。當你既不想要過於僵化的群集,也不想要過於延伸的結構時,平均連結法通常是不錯的折衷方案。

實用原則:如果你需要向業務、行銷或管理層展示群集結果,先從 Ward 法開始。如果結果看起來過於「勉強」,再與平均連結法做比較。


如何根據企業環境進行選擇

在此,學術指南往往僅止於定義。然而,在企業中,則需要一套決策邏輯。

請使用此音軌:

  • 想要緊密且容易解釋的群集?完全連結法Ward 法開始。
  • 想要探索薄弱的關聯或非常不規則的結構?可以考慮單一連結法
  • 想要在穩定性與靈活性之間取得平衡?試試平均連結法
  • 你的變數尺度不同,或指標組合不太一致?先檢查資料準備工作和度量方式,否則連結法會被不公平地評判。

換句話說,並不存在所謂的「絕對最佳方法」。真正存在的,是與商業需求最相符的方法。


一個具體的例子

假設你想根據購買頻率、平均訂單金額以及購買的品類數量,對一家零售中小企業的客戶進行分群。

使用單一連結法,你可能會得到一個非常龐大的群集,由彼此差異相當大的客戶之間的漸進式連接所組成。如果你想觀察行為上的連續性,這會很有用,但如果你需要建立區隔明確的商業行動,則較不適合。

使用完全連結法,群組會變得更緊密。每個群集內的客戶彼此更相似,因此行銷團隊更容易打造專屬的促銷方案。

使用Ward 法,你通常會得到有條理、容易理解的區隔。因此,當目標不僅是分析,還要達成決策時,這是常見的選擇。


運算成本同樣很重要

聚類式層次聚類在處理大型資料集時可能會變得相當耗資源。這一點確實會產生實質影響:處理時間較長、記憶體需求較高,且留給使用者快速測試不同度量標準與連結方式的空間較少。

對中小企業而言,重點不在於探討演算法的理論。重點在於了解在現有數據、團隊的時間限制以及現有工具的條件下,這項分析是否仍具可行性。

因此,技術上的選擇應能回答以下三個簡單的問題:

  • 這些群集是否足夠清楚,能夠指引具體行動?
  • 這個方法是否能妥善呈現資料的真實結構?
  • 這個流程是否能在不需要過多人工作業的情況下持續運作?

這正是像ELECTE 這樣的平台ELECTE 。它能簡化配置中最技術性的部分,並讓不同選項的比較變得更為容易,即使您沒有內部數據科學家團隊也是如此。其價值不在於「進行聚類分析」,而在於選擇一種企業能夠理解、驗證並實際運用的分群方式。


建立與解讀樹狀圖:將樹狀圖轉化為實際操作

凝聚式階層分群(agglomerative hierarchical clustering)真正的價值,展現在它最典型的輸出結果:樹狀圖(dendrogram)。這不是裝飾性的圖表,而是一張決策地圖。



如何在不涉及不必要的技術細節的情況下閱讀樹狀圖

在橫軸上,你可以看到觀察結果,或是若干觀察結果的小組。在縱軸上,則顯示發生融合時的距離或差異程度。

最重要的視覺規則是這樣的:合併發生的位置越高,代表被合併的群組差異越大

這讓你能夠做到一件事,許多經理人會立刻對此表示讚賞。你並非接受某個由「黑箱」公式所決定的叢集數量,而是透過觀察資料結構,來決定在何處停止才是合理的。

例如:

  • 如果許多合併發生在較低的高度,表示資料中包含非常相似的群組;
  • 如果在某個點出現明顯的垂直跳躍,你很可能正在合併已經相當不同的群組;
  • 那個跳躍點通常標示出一個切割樹狀圖的好時機。

樹狀圖將統計決策轉化為視覺化決策。正因如此,它不只在 Python 筆記本中有用,在會議中同樣派得上用場。

視覺輔助工具有助於鞏固概念:


如何選擇切割點

許多人會在此卡關。「我該維持多少個叢集?」老實的說,這取決於你想解決的問題。

若需執行商業行動,過多的聚類會使操作變得複雜。若分析的是差異極大的行為模式,聚類數量過少則可能掩蓋有用的模式。

一個實用的準則是這樣的:

  1. 觀察樹狀圖中最大的垂直跳躍
  2. 畫一條水平線,對應到一個顯著的跳躍處。
  3. 計算被切斷的分支數量。這就是最終得出的群集數量。

假設這條切割線截過了四條主枝。你會得到四個區段。此時,管理層的工作就不再是統計性的,而是轉變為詮釋性的。

請問自己:

  • 這些群組對行銷、銷售或營運來說有意義嗎?
  • 我能用容易理解的方式描述它們嗎?
  • 每個群組是否都會引出不同的行動?

實務觀察:最好的樹狀圖不是最優雅的那個,而是能讓你在使用者面前,為自己的分群選擇提出合理說明的那個。


Python 與 Scikit-learn 實用指南

你手邊有一組客戶資料、幾個有用的變數,以及一個具體的問題:是否存在需要採取不同商業策略的群體?Python 正是用來將這個問題轉化為快速、易讀且可重複執行的測試。

要做到這一點,通常會用 scikit-learn 建立模型,並用 SciPy 繪製樹狀圖。技術層面並不難掌握。對中小企業來說,真正關鍵的是把資料準備妥當,並有條理地解讀結果。


正確準備資料

最常見的錯誤其實發生在演算法之前。如果你將「年度營業額」這類變數與「訂單數量」這類變數放入同一個模型中,規模較大的變數很可能佔據過多權重。因此,最終的聚類結果更多地反映了計量單位的差異,而非客戶或產品之間的真實相似性。

標準化正是為了避免這個問題。實際上,就是把數值變數轉換到可比較的尺度上。這是一個簡單的選擇,但會實質改變結果,尤其是當你想使用Ward連結法時——它在處理妥善準備過的數值資料時效果很好。

在推出該模型之前,請確認以下三點:

  • 尺度不同的數值變數。將它們標準化。
  • 類別變數。將它們轉換成模型可用的格式。
  • 缺失值。事先處理好,否則分群結果會變得不穩定或無法使用。

這裡有個有用的比喻:你將客戶進行比較,彷彿必須用同一個衡量標準來評估他們。如果一個客戶是以歐元為單位衡量,另一個則是以原始數據為單位,這種比較從一開始就已經失衡了。


基本實作範例

以下是一個使用 scikit-learn 的基本範例:

import pandas as pdfrom sklearn.preprocessing import StandardScalerfrom sklearn.cluster import AgglomerativeClustering# Esempio: dataset con variabili numerichedf = pd.DataFrame({"frequenza_acquisto": [12, 10, 2, 3, 15, 1],"scontrino_medio": [80, 75, 20, 25, 95, 15],"numero_categorie": [5, 4, 1, 2, 6, 1]})# 1. Scalingscaler = StandardScaler()X_scaled = scaler.fit_transform(df)# 2. Modellomodel = AgglomerativeClustering(n_clusters=3,linkage="ward")# 3. Assegnazione clusterlabels = model.fit_predict(X_scaled)df["cluster"] = labelsprint(df)

程式碼很簡短。管理層的閱讀更為重要。

在這個範例中,你是在告訴模型:「將這些觀測值分成3個群集,逐步合併最相似的案例」。最終結果就是cluster欄位,也就是分配給資料集中每一列的標籤。從這裡開始,才是對業務真正有用的工作:搞清楚群集0和群集1之間的區別,以及哪些決策值得採取。

如果你還想視覺化完整的階層結構,通常會搭配使用scipy.cluster.hierarchy.linkagedendrogram。Scikit-learn幫你得出群組,SciPy則幫你看清這些群組是如何形成的。


真正關鍵的三項決定

在企業環境中,叢集的價值並不取決於筆記型電腦的複雜程度,而是取決於三項決策的品質。

  • 要納入哪些變數。如果選了用處不大的欄位,得出的群集會難以解讀。
  • 要使用哪種連結法。Ward法在標準化的數值資料上通常是不錯的起點,但並非每個問題的最佳選擇。
  • 多少群集才能讓輸出結果可用。一個有8個群組的模型可能看起來很精確,但對行銷、銷售或營運來說卻可能變得難以管理。

這正顯示了技術性練習與決策工具之間的差異。管理者不需要進行抽象的「群組分析」。他需要的是能夠命名、解釋並實際運用的市場區隔。

因此,若您正在使用 Python 進行開發,請不要僅止於模型所賦予的標籤。請觀察每個聚類變數的平均值,比較所呈現的特徵,並立即自問:這個群組是否需要採取與其他群組不同的行動?如果答案是否定的,問題就不在程式碼上。通常問題出在變數的選擇、連結法或閾值設定上。


助您拓展業務的應用實例

一個演算法真正值得關注,是在它能改變具體行動的時候。凝聚式階層式分群法(agglomerative hierarchical clustering)之所以有用,是因為它能把資料庫裡的一行行資料,轉化成業務可以運用的區隔。


真正有助於行銷的客戶分群

許多中小企業至今仍採用非常簡單的方式來區分客戶。例如年齡、地理區域,或許還有營業額區間。這雖是個開始,但往往還不夠。

透過階層式聚類分析,您可以整合各種行為變數,例如購買頻率、平均消費金額、偏好類別以及對促銷活動的反應。分析結果不僅是一份客戶檔案清單,更是一套階層結構,能讓您清楚了解哪些群體之間關係密切,而哪些群體則需要針對性地傳遞不同的訊息。

這有助於行銷團隊做出更精準的決策:

  • 忠誠客戶,需要用忠誠計畫加以維護
  • 偶發性買家,需要用專屬活動重新喚起
  • 新客戶,需要引導促成第二次購買
  • 不穩定客群,需要在流失前加以監控


產品與庫存

在零售與電子商務領域,群組分析不僅有助於了解消費者,也有助於了解商品。

您可以根據銷售模式、搭配購買、季節性或對促銷活動的反應來將產品進行分組。這有助於改善各項營運決策:

  • 商品組合。了解哪些產品的動態表現相似。
  • 促銷活動。打造更具一致性的組合方案。
  • 庫存。避免用同一套方式處理表現差異很大的商品。

此處的管理優勢顯而易見。您並非孤立地檢視單一 SKU,而是找出可一併規劃的營運類別。

當產品的變動模式呈現相似的群集特徵時,補貨與促銷的決策也會變得更有一致性。


財務風險與網路安全

在金融領域,聚類分析有助於區分正常模式與需要進一步分析的模式。雖然它無法取代監管審查或專業模型,但可作為有用的分析工具,用以歸類相似的行為模式並揭示異常情況。

在資安領域也有一個值得關注的發展方向。有一種新興觀點是,針對義大利中小企業的網路流量,運用進階的AHC技術。2025年,義大利IT中小企業遭受的勒索軟體攻擊上升了27%,而以內積(inner-products)為基礎的AHC框架,在義大利的網路流量資料集上,將異常值偵測的準確度提升了18%此處引用之JMLR文獻)。

這段內容若能正確理解,將大有裨益。這並非意味著每家中小企業都必須立即建立一套用於安全的群組化管道。但這確實表示,階層式群組化不僅限於行銷或零售領域。它可以成為一種橫向分析架構,涵蓋從客戶行為到風險監控的各個層面。


ELECTE 如何為您的企業ELECTE 聚類分析ELECTE

您的客戶資料存於 CRM 系統、訂單記錄在電商平台、利潤數據存於 Excel 檔案,而部分營運資訊則散見於管理系統中。只要這些資料仍處於分散狀態,聚類分析便僅止於理論層面。對中小企業而言,問題不在於理解聚類分析的實用性,而在於能否建立出清晰、一致且足夠可靠的聚類結果,以作為商業或營運決策的依據。

正是在這一點上,像ELECTE 這樣的平台ELECTE 手動操作,並讓決策者(而非程式設計師)能更輕鬆地運用此方法。


內部團隊究竟卡在何處

實際上,常見的障礙主要有四種。

  • 資料來源分散於 CRM、電商平台、本地檔案和財務工具之間
  • 變數難以準備,因為它們的尺度和單位各不相同
  • 連結方式的選擇不夠直觀,尤其當不清楚該優先考慮緊湊性、穩定性還是對異常值的敏感度時
  • 輸出結果難以閱讀,對於不每天使用 Python 工作的管理者和營運團隊來說尤其如此

最容易被低估的一點正是這個:光有演算法還不夠。你需要一條從原始資料通往業務可用分群結果的路徑。Electe 已經在第一步就提供了幫助,有條理地連接企業內部的各種資料來源。如果你想了解有哪些整合方式,可以參考Electe 可連接資料來源頁面。


此外還有第二項難題,這更多是策略層面的問題,而非技術層面的。即使模型執行得當,若選擇了錯誤的連結方法,仍可能產生對企業幫助不大的群組。管理者無需了解每個數學細節,而是需要理解哪種配置能產生足夠穩定的細分群組,以支撐行銷活動、庫存政策或客戶組合的調整。


自動化工作流程帶來了哪些改變

透過自動化工作流程,整個過程更像是一條井然有序的生產線,而非一系列手工測試。資料輸入後,會以一致的方式進行處理,系統會比較多種配置,最終產出則以易於閱讀的形式呈現。

具體而言,流程可依循以下步驟:

  1. 收集資料,將企業各系統的資料整合到單一環境中。
  2. 以一致的規則準備變數,這樣營業額就不會因尺度差異而對購買頻率造成不成比例的影響。
  3. 比較多種分群設定,無需手動重複每次嘗試。
  4. 解讀可理解的群組,其標籤和模式對業務、行銷或營運團隊來說都有意義。
  5. 將分群結果轉化為決策,例如商業優先順序、促銷分群或補貨政策。

優勢並不在於自動化本身,而在於團隊的時間得以轉移到更關鍵的環節:解讀樹狀圖、選擇合適的分群層級,以及決定如何處理這些群組。

對中小企業而言,這帶來了巨大的改變。與其抽象地思考該採用 Ward、平均值還是完整聚類法,比較變得更加務實:哪種方法能為我們的客戶、產品和目標產生更清晰的聚類?即使沒有內部資料科學家ELECTE 這個問題ELECTE 更易於理解。

因此,自動化並不會取代管理者的判斷,而是將其置於流程中的恰當位置。


結論與重點摘要

凝聚式階層分群(agglomerative hierarchical clustering)不只是大學課堂上的理論主題,它是一項實用的工具,能為原本零散的資料建立秩序。

需要記住的重點雖然不多,卻至關重要:

  • 由下而上進行。每筆觀測值一開始各自獨立,然後逐步與相似的觀測值合併。
  • 一開始不需要設定 k 值。這使得該方法在你尚不確定應分成幾個區隔時特別實用。
  • 連結方式的選擇會改變結果。Ward、complete、average 和 single 產生的結構並不相同。
  • 樹狀圖有助於決策。它不只是一種視覺化呈現,更是將統計結構轉化為管理行動的工具。

對中小企業而言,真正的價值就在於此:在不單靠直覺的情況下,更深入地了解客戶、產品及營運模式。如果您的團隊具備技術能力,可以從 Python 和 scikit-learn 開始著手;但若您希望更快獲得易於理解的洞察,採用自動化方法能有效降低執行阻力並節省時間。

重點不在於使用「先進」的演算法。重點在於做出更清晰的決策,兼顧更多背景資訊,並減少干擾。


如果你想把分散的資料轉化為清晰的區隔和可執行的決策,來看看Electe如何讓分析變得容易上手,即使沒有資料科學團隊也能做到。你可以連接你的資料來源,獲得易於理解的洞察,更快地從分析走向行動。

留言

尚無留言——開始討論吧。