← 全部概念地圖
標準

概念地圖・階層叢集樹狀圖

分類:系統

這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →

階層叢集樹狀圖:切在哪裡決定你有幾群客戶

一份名單擺在桌上,八個名字,誰跟誰比較像——光用眼睛看,多半只看得出一種印象。階層叢集樹狀圖做的是另一件事:先算出每兩個對象之間的距離,把最近的一對併起來,再把併好的那一團當成新的一個,繼續找下一對,一路併到只剩一團。八個名字要併七次,每一次都留下一個高度。併得早、高度低,代表這兩個很像;拖到很高才靠過來,代表它跟誰都不太像。整棵樹畫完,你手上還有一個決定沒下——橫著切一刀,切在哪個高度,就得到幾群。

階層叢集樹狀圖:八個樣本、七次合併,與一條切在高度 6.0 的線 縱軸是合併高度,從 0 到 10。八個樣本並排在底部,由下往上兩兩合併,共七次:樣本 1 與 2 在 1.2、樣本 3 與 4 在 1.8、樣本 6 與 7 在 2.4、樣本 5 在 3.0 靠過來、樣本 3 4 6 7 兩團在 5.2 合併、樣本 8 拖到 7.4 才併入,最後在 9.1 併成樹根。一條朱紅色水平虛線切在高度 6.0,切斷三條枝幹並以三個紅點標示,底下得到三群:樣本 1 2 5、樣本 8 自己一群、樣本 3 4 6 7。 階層叢集樹狀圖:8 個樣本,7 次合併 縱軸:合併高度(兩群之間的距離) 0 2 4 6 8 10 切在這裡=3 群 1.2 1.8 2.4 3.0 5.2 7.4 9.1 樣本 1 樣本 2 樣本 5 樣本 8 樣本 3 樣本 4 樣本 6 樣本 7 群一:1、2、5 群二:8 群三:3、4、6、7 示意數值,用來說明這棵樹的讀法
同一棵樹,切在 4.0、6.0、8.0 三個高度,各得到四群、三群、兩群。

八個客戶,七次合併,各在哪個高度

圖上寫的是樣本 1 到 8,你就當成手上八個客戶的編號。七次合併照高度由低到高排出來,一列就是一次併。

次序這一次併了誰合併高度讀出來的意思
11 + 21.2全場最像的一對,怎麼切都會在一起
23 + 41.8另一組核心,位置在樹的右半邊
36 + 72.4第三對核心,距離已經拉開一點
4(1,2)+ 53.05 靠向 1、2,左半邊長成三個一團
5(3,4)+(6,7)5.2右半邊四個併成一大團
6(1,2,5)+ 87.48 拖到這裡才靠過來,全場最晚
7兩大團合併9.1樹根,整份名單收成一團

真正要盯的是高度的落差。前四次都在 3.0 以下,第五次跳到 5.2,第六次再跳到 7.4——那個 7.4 就是樣本 8 的價碼:它要等到「距離放寬到 7.4」,才勉強跟誰算得上同一群。把切線放在 4.0,得到四群(1、2、5/3、4/6、7/8);放在 6.0,得到三群(1、2、5/3、4、6、7/8);放在 8.0,只剩兩群(1、2、5、8/3、4、6、7)。同一棵樹,三種答案,資料一個字都沒改。

這棵樹準不準,先看四個地方

一、距離是拿哪幾欄算的。樹的形狀由那幾個欄位長出來——多放一欄、少放一欄,同一批人可以站到完全不同的位置上。而且欄位之間的單位常常差好幾個數量級,沒有先標準化(把每一欄拉成同一個尺度),數字最大的那一欄就會自己決定整棵樹。自問:把最不重要的那一欄拿掉重跑一次,這棵樹還長得一樣嗎?

二、連結法選了哪一種。兩個「團」之間的距離要怎麼算,有好幾種定義:看兩團裡最近的一對(單一連結法)、看最遠的一對(完全連結法)、看併起來之後整體的離散程度增加多少(華德法)。三種算法用同一批資料會長出三棵不一樣的樹,而報表上通常只印結果、不印用的是哪一種。自問:手上這張圖是用哪一種連結法跑出來的,我問過嗎?

三、切線放在哪個高度。合併的順序是資料給的,群數卻是你給的——一刀下去切斷幾條枝幹,就有幾群。多數人切線的位置其實來自另一個地方:手上有幾個業務、公司想印幾種方案、簡報上放得下幾張卡。這沒有錯,但要講清楚那一刀是誰下的。自問:這一刀切下去之前,我心裡是不是已經先想好要幾群了?

四、那一支拖到很高才併進來的。每棵樹幾乎都會有一兩個晚到的名字。它可能是輸入錯誤,也可能是一個真的跟別人不一樣的人——而被單獨留在一邊,多半代表還沒有人替他設計過對應的做法。這一支是整張圖上訊息量最高的地方,卻最常被當成雜訊掃掉。自問:這個名字是資料髒了,還是我從來沒替這種人準備過東西?

一位營業員手上的八個客戶,合併一次給你看

一位證券營業員被主管要求把手上的客戶分成幾組來經營。他打開名單,八個名字,誰跟誰比較像這件事,怎麼看都像在憑印象。於是他把三個欄位攤出來:月成交次數、平均單筆部位、平均持有天數。三欄的單位差很遠,先各自標準化,再算歐氏距離——把三個數字看成空間裡的一個點,兩點之間拉一條直線,那個長度就是距離。以下的客戶 A 到 H 與所有數字都是為了說明結構而編的。

先用單一連結法跑一次,再換完全連結法跑同一批資料,兩次的合併高度並排如下。

合併對象單一連結法完全連結法
A + B1.21.9
C + D1.82.6
F + G2.43.4
(A,B)+ E3.04.7
(A,B,E)+ H7.45.8
(C,D)+(F,G)5.27.1
樹根9.19.6
實例演練
  • 先決定拿哪幾欄來比:三個欄位標準化之後才進距離公式,否則部位那一欄以萬元計、成交次數以個位計,樹會變成「部位大小圖」。單位的問題在動手前就處理掉了
  • 最近的三對先併起來:A 與 B 在 1.2、C 與 D 在 1.8、F 與 G 在 2.4——這三對怎麼算都黏在一起,是這份名單真正穩固的部分。三個核心不隨算法動搖
  • E 靠過來,H 一直沒動:E 在 3.0 併進 A、B 那一團;H 要等到 7.4,是八個人裡最晚的一個。營業員回頭看名單才想起來,H 那三欄的組合他從來沒見過。H 孤零零地掛了大半棵樹
  • 切在 6.0:得到三群——A、B、E 一群,C、D、F、G 一群,H 自己一群。分組表交上去,有一格裡面只有一個名字。一個人的「一群」,等於沒有經營方式
  • 換完全連結法重跑:一樣切 6.0,一樣是三群,成員卻全換了——A、B、E、H 併成一群,C、D 與 F、G 反而拆成兩群。H 的孤立感在這張表上直接消失。同一份資料,兩張分組表

兩次跑出來的群數一模一樣,都是三群,這正是最容易讓人放心的地方——數字對得上,就以為結論穩了。但成員全變了:單一連結法讓 H 站在外面,完全連結法把 H 收進 A、B、E 那一團,還順手把原本黏在一起的 C、D 與 F、G 拆開。營業員如果只拿到第二張表,他這一季根本不會知道名單裡有一個誰都不像的人。客戶那邊什麼都沒變,差別全來自「兩團之間的距離要看最近的一對還是最遠的一對」這一個選項——它藏在跑分析那個人的預設值裡,從來不會出現在分組表上。真正該問的一句話很短:這張表是用哪一種連結法跑的。以上為說明結構用的示意情境,僅供理解框架之用。這一段談的是名單怎麼分組,不涉及任何投資建議。

這棵樹什麼時候會騙你

  1. 換一種連結法,那個孤立的名字就會消失。上面那張對照表就是現成的證據:同一批客戶、同一條 6.0 切線,單一連結法把 H 留在外面,完全連結法把它收進大團裡。單一連結法看的是最近的一對,所以容易長出一條一條串起來的鏈;完全連結法看最遠的一對,會傾向切出大小相近的球。兩種都不算錯,但它們回答的是不同的問題——而報表上印的通常只有結果。看到任何一張叢集分組表,先問算法,再看名字。
  2. 資料裡沒有群,樹還是畫得出來。把八個純隨機的點丟進去,一樣會得到一棵漂漂亮亮的樹,因為演算法的工作就是「一直併到剩一團」,它沒有「這批資料不該分群」這個選項。分辨的方法在高度:真的有結構時,群內的合併都很低、跨群那幾次會明顯跳高一階;沒有結構時,七個高度會平均地爬上去,看不到落差。所以要盯的是相鄰兩次高度的差距,形狀漂亮這件事什麼都證明不了。
  3. 沒標準化,距離就被單位綁架。月成交次數是個位數,平均單筆部位是六位數,兩個直接進歐氏距離,部位那一欄的差距會大到把另外兩欄壓成小數點後的雜訊——你以為在做三維分群,跑出來的卻是一張照部位大小排過的名單。標準化之後每一欄的影響力才對等;反過來說,如果你確實認為部位比較重要,那就明講權重,讓它成為一個寫下來的決定,別讓單位替你決定。

用痛點的眼光,看那個誰都不像的客戶

痛點視角

樹量的是相似,需求要另外問。

這棵樹畫得出誰跟誰的行為長得像,畫不出他們各自在痛什麼。三個欄位量到的都是結果——成交幾次、部位多大、抱多久——沒有一欄記錄他為什麼這樣做。兩個被歸在同一群的人,可能一個是沒時間看盤所以少動,一個是被上一次的損失嚇到所以不敢動;分組表上他們一模一樣,該說的話卻完全不同。所以最有價值的位置,是那個拖到 7.4 才被收編的名字。P.A.I.N. 的第一格問「誰在痛」,而樹會替你把那個「誰」單獨圈出來——他的行為跟現有的所有做法都對不上,通常代表你的服務目錄裡沒有一條是為他寫的。這種人數量少,卻常常是新做法的起點。今晚就能做的一件事:把那個最晚併進來的名字挑出來,打一通電話,問他上一次覺得麻煩是在哪一步,然後把他的回答寫在分組表旁邊。

常見問題

階層叢集和 K-means 差在哪裡?

最大的差別在「群數什麼時候決定」。K-means 要你動手之前就先講好分幾群,演算法再去找那幾個中心;階層叢集反過來,先把整個合併過程算完畫成樹,你事後再決定切在哪一刀——同一次計算可以看四群、三群、兩群長什麼樣。代價是計算量:階層叢集要算所有兩兩之間的距離,資料一大就吃不消。實務上常見的做法是先用階層叢集看結構、決定大概要幾群,再用 K-means 跑大資料。

要怎麼決定切在哪個高度?

最常用的判準是找「跳最大的那一階」:把七次合併的高度依序排開,看哪兩次之間的落差特別大,就切在那個縫裡。以上面那棵樹來說,5.2 跳到 7.4 是全場最大的一階,切在中間的 6.0 相當合理。但這只是參考——真正的限制通常來自你能負擔幾種經營方式。切出六群卻只有三套做法,那三群多出來的分法在實務上等於沒發生。先問手上做得出幾種對待方式,再回頭切。

幾千筆、幾萬筆資料還能用階層叢集嗎?

會很吃力。它要計算並保存所有兩兩之間的距離,資料量翻倍,成本大約變四倍,樹狀圖畫出來也會密到看不出葉子。幾千筆已經是需要斟酌的量級,幾萬筆通常改用別的做法:先抽樣跑階層叢集看結構、決定群數,再用 K-means 之類的方法套回全體;或是先做一輪粗分群,再對每一群內部跑階層叢集看細節。樹狀圖真正的強項在幾十到幾百個對象的「看清楚」,規模一大就該換工具。

合併高度可以直接當成「這兩群差多少」嗎?

只能在同一張圖裡比。高度的單位是你選的距離加上你選的連結法算出來的,換一種連結法整組數字就換一套——上面那張對照表裡,同一對客戶在兩種算法下是 1.2 與 1.9。所以跨部門、跨時間拿兩張樹狀圖比高度沒有意義,除非兩邊的欄位、標準化方式與連結法都一樣。同一張圖裡的相對關係則很可靠:誰先併、誰後併、哪一階跳得最大,這些讀出來的訊息才是樹狀圖要給你的東西。

打開那份名單,先找出誰都併不進去的那個名字。這棵樹跟顧客金字塔是兩種相反方向的分法——金字塔的層是人先訂好的,照貢獻高低往下排;樹的形狀由資料自己長出來,群數還要等你那一刀。分完組之後要決定每一群拿什麼去對待他們,可以接著看顧客價值地圖。

發現引用或事實有誤?請寫信回報,我會依更正政策修正。