業務

聚類分析:2026 年完整指南

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

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

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

此時便輪到聚類式層次聚類法登場。這是一種機器學習技術,透過自下而上的層次結構,將觀察結果組織成群組。 這並非新興技術,而是已臻成熟的方法:該技術於1960年代問世,在義大利早於1985年便已應用於一項社會經濟數據專案,將50個地區歸納為7個主要聚類參考文獻見此處)。這點之所以重要,是因為它揭示了一個簡單的事實:當數據看似混亂時,階層式聚類能揭示出可讀的結構。

若您希望從更宏觀的角度來理解企業數據的應用,這份企業數據分析指南將是絕佳的參考資料。

目錄

  • 結論與重點摘要
  • 引言:從數據混亂到戰略清晰

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

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

    聚類式層次聚類法旨在將這份混亂轉化為可讀的結構。它並非立即強行套用預先設定的類別,而是根據相似性來組織元素,並逐步展示群組如何成形。其結果不僅僅是一項統計演練,更是對市場區隔、營運優先順序及定位決策的實質支援。

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

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

    如果您正在進行市場區隔、報表編製或企業數據分析,以期做出更迅速且切實的決策,此方法將協助您發掘那些在 Excel 試算表中難以察覺的關聯性。透過ELECTE 等工具,即使是沒有資料科學家團隊的中小企業,也能將此方法融入日常流程中,從數據解讀到營運決策皆能受益。

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

    聚類式層次聚類法從底層開始。每個記錄最初都是一個獨立的群組。接著,演算法會比較相似性,將最相近的兩個元素合併,並重複此步驟,直到建立出完整的層次結構。

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

    一位老人在書架上挑選了一本藍色的書,這座書架位於一間藏書豐富的家庭書房裡。

    運作機制相當簡單:

    1. 每個觀察項目皆獨立存在。客戶、產品或交易均屬各自獨立的群組。
    2. 計算兩個元素或兩個群組之間的差異程度
    3. 根據所選規則,將最鄰近的叢集合併
    4. 更新結構並重新進行比對。
    5. 持續進行,直到得到一個單一的層級樹,其中顯示所有可能的聚合方式。

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

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

    它與其他方法有何不同

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

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

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

    實用準則:當您希望在定義穩定的操作區段之前,先探索資料結構時,請使用階層式聚類分析。

    若想將此方法與針對不同商業問題的其他機器學習演算法進行比較,應根據您需要做出的決策來評估它們,而不僅僅是基於技術本身。

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

    兩家企業即使使用相同的演算法,所獲得的群組劃分結果也可能大相逕庭。原因幾乎總是出在這裡:在於如何衡量群組間的距離,以及如何決定哪些群組應合併

    這是一張說明階層式聚類中距離度量與連結方法的資訊圖表。

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

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

    距離度量用於衡量兩個觀測值之間的差異程度。無論您是分析客戶、產品還是銷售據點,這都是演算法用來比較各資料點的準則。

    最常見的有:

    • 歐幾里得距離。用於測量兩點之間的直線距離。當處理經過適當標準化處理後、彼此可比的數值變量時,此方法特別適用,例如營業額、購買頻率及平均帳單金額。
    • 曼哈頓距離。將每個變數的絕對差值相加。當您希望獲得一種對單一偏差較不敏感、且更貼近「區塊式」邏輯的度量時,此方法效果良好,在某些操作型資料集中相當實用。

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

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

    連結機制在後續階段才發揮作用。它並非比較兩個單獨的點,而是比較兩個已經形成的群組。

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

    主要方法包括:

    • 單連結。考慮不同叢集之間距離最近的兩個點。
    • 完全連結。考慮兩點間的最大距離。
    • 平均連結法。使用兩個聚類中所有點之間距離的平均值。
    • Ward。它會合併那些能將內部變異度增加到最低程度的聚類。

    連結方法之比較

    連結法運作原理優點反對最適合
    單連桿機構使用兩個聚類點之間的最小距離擷取漸進式連線可能會形成緊密度較低的「鏈狀」叢集高度關聯的模式,初步探索
    完全連桿使用兩個聚類之間點與點間的最大距離產生更緊密的叢集可能會將原本自然相鄰的群組過度分離重視同質性的市場區隔
    平均連結度兩個聚類中點之間的距離為中等不錯的折衷方案對企業而言較難立即理解平衡分析
    沃德將群組內變異數的增加降至最低產生穩定且可讀的區隔需要經過妥善處理的數值變數客戶細分、商業分析

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

    若您的目標是找出透過漸進相似性相互連結的群組,在探索階段採用「單鏈結法」可能相當有用。反之,若您需要建立明確的區塊以分配給行銷活動、價格清單或服務等級,在許多情況下,「完整鏈結法」「沃德法」所產生的群組通常更易於解讀。當您既不希望群組過於僵化,也不希望結構過於拉長時,「平均鏈結法」往往是個不錯的折衷方案。

    實用準則:若需向業務、行銷或管理層簡報叢集分析結果,請從 Ward 法開始。若結果看起來過於「牽強」,請與平均連結法進行對比。

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

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

    請使用此音軌:

    • 想要結構緊湊且易於解釋的聚類?不妨從Complete或 Ward演算法開始。
    • 您想探索弱連結或極不規則的結構嗎?不妨考慮單連結模型
    • 想要在穩定性與靈活性之間取得平衡嗎?試試平均連結法吧。
    • 您是否擁有不同量表的變數,或是指標組合不夠一致?請先檢查資料預處理與度量標準,否則連結分析的結果可能會受到不公正的評價。

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

    一個具體的例子

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

    採用單連結(single linkage)時,可能會形成一個非常廣泛的聚類,其中差異頗大的客戶之間僅透過漸進的過渡連結相連。若您希望觀察行為的連續性,這種方法相當有用;但若需建立明確區分的商業行動,其實用性則較低。

    透過完全連結,群組的凝聚力會更強。每個群組內的客戶特徵更加相似,因此行銷團隊能更輕鬆地設計出針對性的促銷活動。

    使用Ward 圖,通常能得到條理分明且易於閱讀的區段。正因如此,當目標不僅是分析,而是要做出決策時,這往往是常見的選擇。

    運算成本同樣很重要

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

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

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

    • 這些群組是否足夠清晰,足以引導後續行動?
    • 該方法能否有效處理實際的資料結構?
    • 這個流程在不過度依賴人工的情況下是否可行?

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

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

    聚類分析中,聚合式層次聚類法的真正價值,在於其最典型的輸出結果:樹狀圖。這並非僅是裝飾性的圖表,而是一幅決策地圖。

    一名專業人士在現代化辦公室中,透過全息介面操作,該介面顯示出一幅複雜的樹狀圖。

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

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

    最重要的視覺法則是:融合發生得越早,被合併的群體之間差異就越大

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

    例如:

    • 如果許多合併發生在較低高度,資料中便會包含非常相似的群組;
    • 如果某個時候出現明顯的垂直跳躍,那你很可能正在合併原本就差異頗大的群組;
    • 那個凸起處通常是鋸斷樹木的好位置。

    樹狀圖將統計決策轉化為視覺決策。正因如此,它不僅適用於 Python 筆記本,在會議中同樣相當實用。

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

    如何選擇切割點

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

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

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

    1. 請觀察樹狀圖中最大的垂直跳躍
    2. 在顯著的跳變處畫一條水平線
    3. 數一數被剪下的枝條。那就是最終的叢數。

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

    請問自己:

    • 這些群組對行銷、銷售或營運部門來說有意義嗎?
    • 我能用通俗易懂的方式來描述它們嗎?
    • 每個群組都會引發不同的行動嗎?

    實務觀察:最佳的樹狀圖並非最簡潔優雅的那個,而是能讓你向使用者解釋為何選擇該種分割方式的那個。

    Python 與 Scikit-learn 實用指南

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

    為此,通常會使用scikit-learn來建立模型,並使用SciPy來繪製樹狀圖。技術層面並不難掌握。對中小企業而言,真正關鍵的在於妥善整理資料,並以審慎的態度解讀結果。

    正確準備資料

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

    標準化正是為了避免這個問題。實際上,這是將數值變量轉換為可比的量表。這雖是個簡單的選擇,卻能實質地改變結果,特別是當你想使用沃德連結法Ward linkage)時,因為該方法在處理經過妥善處理的數值資料時效果最佳。

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

    • 不同量表的數值變項。請將其標準化。
    • 分類變數。請將其轉換為模型可用的格式。
    • 缺少的值。請先處理這些值,否則聚類分析的結果將變得不穩定或無法使用。

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

    基本實作範例

    以下是一個使用 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 個聚類,並逐步合併最相似的案例」。最終結果即為該欄位 叢集,也就是賦予資料集每行資料的標籤。從這裡開始,對企業真正有價值的工作便展開了:釐清群集 0 與群集 1 的差異,以及這些差異能為決策帶來什麼價值。

    若您還想查看完整的層級結構,通常會使用 scipy.cluster.hierarchy.linkage 與……一同 系統樹. Scikit-learn 協助您找出群組。SciPy 則協助您了解這些群組是如何形成的。

    真正關鍵的三項決定

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

    • 應納入哪些變數。若選擇實用性不高的欄位,所產生的聚類結果將難以解讀。
    • 該使用哪種關聯模型?Ward 模型通常是基於標準化數值數據的良好基礎,但並非對每個問題都是最佳選擇。
    • 需要多少個群組,輸出結果才具有實用價值。一個包含 8 個群組的模型看似精確,但對行銷、銷售或營運部門而言,可能會變得難以管理。

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

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

    助您拓展業務的應用實例

    只有當演算法能帶來實際的改變時,它才真正具有價值。當聚類分析(agglomerative hierarchical clustering)能將資料庫中的資料列轉化為企業可運用的客群區隔時,它便展現出實用價值。

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

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

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

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

    • 透過忠誠度計劃來維護忠實客戶
    • 透過專屬行銷活動重新吸引偶爾購買的顧客
    • 協助新客戶完成第二次購買
    • 應在這些不穩定對象離開前加以監控

    產品與庫存

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

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

    • 產品組合。了解哪些產品具有相似的銷售動態。
    • 促銷活動。打造更具一致性的組合方案。
    • 庫存。請避免將行為模式截然不同的商品一視同仁。

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

    當產品呈現類似的群聚趨勢時,補貨與促銷的決策也會更加一致。

    財務風險與網路安全

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

    此外,網路安全領域還出現了一個值得關注的發展方向。其中一項新興趨勢,是將先進的異常檢測與駭客分析(AHC)技術應用於義大利中小企業的網路流量監控。2025年,針對義大利IT中小企業的勒索軟體攻擊增加了27%,而基於內積的AHC框架在義大利網路流量資料集上,將異常值偵測的準確度提升了18%參見此處引用的JMLR文獻)。

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

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

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

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

    內部團隊究竟卡在何處

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

    • 分散於CRM、電子商務、本地檔案及財務工具中的資料來源
    • 這些變數難以處理,因為它們的量級和單位各不相同
    • 連結方式的選擇不夠直觀,尤其是當無法明確判斷應優先考量緊湊性、穩定性還是對異常值的敏感度時
    • 對於那些並非每天使用 Python 工作的經理和營運團隊而言,這些輸出結果難以理解

    最常被低估的一點正是:僅靠演算法是不夠的。我們需要一套流程,能將原始資料轉化為企業可實際運用的細分結果。ELECTE 已在第一步ELECTE 能有條不紊地整合企業資料來源。若想了解有哪些整合選項,您可以參閱 ELECTE中的可整合資料來源」頁面。

    https://www.electe.net/placeholder-dashboard-clustering.jpg 的螢幕截圖

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

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

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

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

    1. 企業系統中的資料匯集到單一環境中。
    2. 依照一致的規則設定變數,如此一來,營業額就不會相對於購買頻率產生不成比例的影響。
    3. 比較多種叢集設定,無需手動重複執行每項測試。
    4. 讀取可解讀的群組,其標籤與模式對銷售、行銷或營運部門而言具有實質意義。
    5. 將群組轉化為具體決策,例如商業優先順序、促銷區隔或補貨政策。

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

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

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

    結論與重點摘要

    聚類式層次聚類法不僅僅是大學課程中的主題,更是整理原本會零散散落數據的實用工具。

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

    • 從下往上展開。每項觀察都從獨立的點出發,並逐步與其他類似的觀察結合起來。
    • 它不會在開始時就指定 k 的值。這使得該方法在您還不確定需要多少個區段時特別有用。
    • 連結方式的選擇會改變結果。Ward、complete、average 和 single 產生的結構並不相同。
    • 樹狀圖有助於決策。它不僅僅是一種視覺化呈現,更是將統計結構轉化為管理行動的工具。

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

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


    若您希望將零散的數據轉化為清晰的細分結果與實際決策,請了解如何做到 ELECTE 如何讓您即使沒有資料科學家團隊,也能輕鬆進行分析。您可以串接您的資料來源,獲得易於理解的洞察,並更快地從分析轉化為行動。