# 聚類分析

圖入面啲點可以明確分做三塊聚類（色水表示聚類），而且聚類之間仲有得畫線分隔開。聚類分析可以想像成係幫啲點油顏色，表示佢屬邊個聚類。
**聚類分析**係一種統計分析，目的係要令每個組（**聚類**）入面嘅物件彼此之間相似，但同個組以外嘅物件唔相似。精確啲講，即係聚類分析會攞一拃物件做 input 而 output 會畀出每件物件**屬邊類**。

最基本上，聚類分析可以用附圖嗰種方法想像：圖入面拃點當中每一粒，都喺 X 軸（表示一個變數）同 Y 軸（表示另一個變數）度有個位置，但就噉用肉眼睇都睇得出，啲點可以分做三大類（唔同色嘅點），每個**聚類**都係「個聚類入面啲點，彼此之間距離近，同時又冚唪唥都係同聚類外嘅點距離遠嘅」；聚類分析就可以想像成「同啲點油顏色，表示每點屬邊個聚類」嘅過程。

聚類分析有廣泛嘅用途：淨係講社會科學嘅話，聚類分析喺市場學上可以攞嚟將消費者分類（每位消費者做一點），從而幫手預測消費者嘅行為，又可以喺醫療相關工作上攞嚟按「有冇傾向做運動等健康嘅行為」將啲人（每個人做一點）分類，幫手研究「邊啲人比較傾向有食煙飲酒等唔健康嘅行為」等嘅問題。因為聚類分析咁有用，由統計學以至機械學習等嘅領域，都有工作者專職研究呢種分析嘅數學特性。

啲人學做聚類分析，通常會學咗基本嘅統計學先。

## 概論

### 前置概念

留意呢四件物件：
* **A**－左上：帝王斑蝶；
* **B**－右上：翠鳳蝶；
* **C**－左下：美眼蛺蝶；
* **D**－右下：大笨象。

A、B 同 C 之間唔完全一樣，但佢哋之間嘅相似度明顯高過佢哋同 D 之間嘅相似度－人腦就用**蝴蝶**一詞描述屬 A、B 同 C 嗰類嘅物件。
聚類分析建基一個古老嘅諗頭：

|  |  |  |
| --- | --- | --- |
| 「 | 攞一拃物件，呢拃物件可以按佢哋啲特性（變數）分做若干個『類』。 | 」 |

有學者指，語言本質上就涉及類似聚類分析噉嘅諗嘢方式。例如**蝴蝶**呢隻詞噉：唔同蝴蝶物種之間有差異，例如齋睇啲翼嘅色水已經睇得出佢哋明顯唔同；而且同一種物種嘅蝴蝶之間都可以有個體差異，例如有啲生得大隻啲有啲生得細隻啲；但人腦留意到「呢拃物體之間嘅內部差異，明顯細過佢哋同外部嘅物件（例如人類或者大笨象）之間嘅差異」於是人就喺腦海裏面將呢拃物件分做同一個類，並且畀個名嗌佢哋－**蝴蝶**。

### 統計基礎

喺精確啲嘅統計學上，聚類分析嘅用途如下：

|  |  |  |
| --- | --- | --- |
| 「 | **Input**－攞個內部差異有咁上下大嘅群體，個群體有若干個個體；
**Output**－將個群體分類做若干個子群體（**聚類**），每個子群體嘅內部差異細。 | 」 |

當中「個體」可以係（例如）一隻動物、一個人或者一隻化學元素... 呀噉都得。舉個具體例子，想像家陣有份關於健康行為嘅研究：

* 研究者搵咗幾百位受試者返嚟，量度同健康行為相關嘅變數－包括「每個禮拜食幾多生果蔬菜」同埋「每個禮拜食幾多垃圾食物」呀噉；
* 研究者跟住就行聚類分析，將班受試者按健康行為分聚類，佢哋事後再睇分析搵出嗰啲聚類喺人口統計上有啲咩共通點；
* 假想家陣研究者搵到有個聚類係「少食生果蔬菜，又多食垃圾食物嘅人」，於是佢哋進一步噉睇，睇吓個聚類入面啲人傾向係乜年齡層同性別嘅，發覺呢個聚類嘅人傾向係青少年，而男女比例大約係 1:1 咁多；

噉班研究者就搵到樣有用嘅資訊，可以作出（簡化講）「想呼籲人改善飲食習慣嗰陣，應該要以青少年做主要宣傳目標」噉嘅推論。要注意嘅係，聚類分析係種**探索性質**嘅統計分析，即係話聚類分析嘅目的唔係要驗證某啲假說，而係要喺對啲聚類冇先驗知識（分析前唔知有幾多個聚類同埋每個聚類係點嘅樣）之下，搵出手上個群體有冇明確嘅聚類。

呢拃物件（每粒點表示一件物件）可以按位置座標分做三類；聚類分析做嘅係「攞拃點，同每點決定佢屬邊個聚類」。想像

**X 軸**表示「每個禮拜食幾多生果蔬菜」而

**Y 軸**表示「每個禮拜食幾多垃圾食物」

－同啲數據做聚類分析就可以答「樣本入面啲人，可唔可以按嗰兩個變數分類？」呢條問題。
聚類分析可以用多種唔同嘅演算法達致，唔同嘅聚類分析演算法可以喺以下呢啲方面彼此之間有差異：

* 「點樣量度物件之間嘅相似度？」簡單嘅可以用歐幾里得距離或者曼克頓距離，進階啲嘅演算法仲可以唔同變數佔嘅比重唔同；
* 「計好嗮物件之間嘅相似度之後，要點將佢啲分做聚類？聚類嘅具體定義係乜？」
* 「假設計好嗮相似度又定義好聚類，我哋可以由計到嘅統計顯著度作出咩推論？」

... 呀噉。因為噉，做聚類分析要求相當高嘅技術，有統計學底嘅人好多時要用閒閒哋幾個月嘅時間做訓練，先可以做到。

## 相似度值

**相似度**呢個概念可以話係聚類分析嘅根基。相似度係個好合符直覺嘅概念－是但搵三件物件 A B C，一個人都能夠答「A 似 B 多啲定似 C 多啲？」噉嘅問題。但喺統計學上對聚類分析嘅研究，唔同研究者用嘅相似度指標值都唔多一樣，而且呢啲唔同嘅指標，都直覺上畀人覺得係「反映得到物件之間嘅相似度」。

### 點之間嘅距離

家陣有兩點而 WIKINIUM\_MATH\_PH\_0 ，綠線係兩點之間歐幾里得距離，而藍線、紅線同黃線（呢三條長度一樣）係兩點之間嘅曼克頓距離。
喺數學上，距離查實係個幾撈絞嘅概念。想像家陣設兩點（一點係一個個案）叫佢哋做 WIKINIUM\_MATH\_PH\_2 同 WIKINIUM\_MATH\_PH\_4 ，每點係個向量，包含 WIKINIUM\_MATH\_PH\_6 咁多個變數（維度），噉要計嗰兩點之間嘅距離（ WIKINIUM\_MATH\_PH\_8 ），常用嘅計法有以下呢啲：

* 歐幾里得法：最直接嗰種距離計法，指兩點之間嘅直線距離，最廣義（無論維度係幾多都啱用）嗰條式係
 WIKINIUM\_MATH\_PH\_10 ，當中 WIKINIUM\_MATH\_PH\_12 係「 WIKINIUM\_MATH\_PH\_14 嘅第 WIKINIUM\_MATH\_PH\_16 個變數」而 WIKINIUM\_MATH\_PH\_18 係「 WIKINIUM\_MATH\_PH\_20 嘅第 WIKINIUM\_MATH\_PH\_22 個變數」。

* 曼克頓計法：想像一個世界，兩點之間嘅空間可以用格仔代表（右圖），而且一個個體淨係有得沿住啲格仔嘅邊線嚟行，冇得穿過啲格仔（好似係一個喺曼克頓揸車搵食嘅的士司機噉），噉喺是但兩點之間穿梭都會有好多條「最短路線」，呢啲路線嘅長度就係所謂嘅曼克頓距離；數學化啲講，曼克頓距離計法係
 WIKINIUM\_MATH\_PH\_24

* 明氏計法：歐幾里得距離同曼克頓距離嘅廣義化，條式係
 WIKINIUM\_MATH\_PH\_26 ，當中 WIKINIUM\_MATH\_PH\_28 同 WIKINIUM\_MATH\_PH\_30
－如果 WIKINIUM\_MATH\_PH\_32 ，條式就係計曼克頓距離嗰條；而如果 WIKINIUM\_MATH\_PH\_34 ，條式就係計歐幾里得距離嗰條。

* 坎培拉計法：條式係
 WIKINIUM\_MATH\_PH\_36 ，
－如果 WIKINIUM\_MATH\_PH\_38 ，噉 WIKINIUM\_MATH\_PH\_40 。

要留意嘅係，上面呢幾條式「用距離嚟代表相似度」嘅做法，係假定咗啲變數冚唪唥都係連續嘅。有關「啲變數唔連續嗰陣，相似度要點計」呢條問題嘅答案，可以睇吓簡單匹配係數同埋雅卡德指數等嘅概念。

### 聚類間嘅距離

假設家陣想研究嘅變數冚唪唥都係連續嘅，而且研究者經已定義好「距離」（以下用符號 WIKINIUM\_MATH\_PH\_42 代表）嘅概念；跟住想像家陣攞兩個聚類 WIKINIUM\_MATH\_PH\_44 同 WIKINIUM\_MATH\_PH\_46 嚟睇，每個聚類都可能有 WIKINIUM\_MATH\_PH\_48 咁多點（每點係一個個案），當中 WIKINIUM\_MATH\_PH\_50 ，噉呢兩個聚類之間「有幾相似」－用符號 WIKINIUM\_MATH\_PH\_52 表示－可以用多種方法計。

#### 單連結

單連結聚類距離係指 WIKINIUM\_MATH\_PH\_54 同 WIKINIUM\_MATH\_PH\_56 之間**最短**嘅可能距離：家吓是但由 WIKINIUM\_MATH\_PH\_58 攞一點出嚟（ WIKINIUM\_MATH\_PH\_60 ）同埋由 WIKINIUM\_MATH\_PH\_62 攞一點出嚟（ WIKINIUM\_MATH\_PH\_64 ），考慮嗮所有嘅可能配對，同每對配對計嗰兩點之間嘅距離值，最後揀距離值**最細**嗰對配對，嗰個值就係 WIKINIUM\_MATH\_PH\_66 同 WIKINIUM\_MATH\_PH\_68 之間嘅單連結距離。數學化啲噉講即係：

 WIKINIUM\_MATH\_PH\_70 ，當中 WIKINIUM\_MATH\_PH\_72
例如下圖條藍色線就係兩個聚類之間嘅單連結距離。單連結距離最大嘅弱點係難以分開有雜訊嘅聚類，即係例如兩個聚類之間有啲零散嘅點，就好容易會打亂段演算法計嘅數。

#### 全連結

全連結聚類距離指 WIKINIUM\_MATH\_PH\_74 同 WIKINIUM\_MATH\_PH\_76 之間**最長**嘅可能距離；家吓是但由 WIKINIUM\_MATH\_PH\_78 攞一點出嚟（ WIKINIUM\_MATH\_PH\_80 ）同埋由 WIKINIUM\_MATH\_PH\_82 攞一點出嚟（ WIKINIUM\_MATH\_PH\_84 ），考慮嗮所有嘅可能配對，同每對配對計嗰兩點之間嘅距離值，最後揀距離值**最大**嗰對配對，嗰個值就係 WIKINIUM\_MATH\_PH\_86 同 WIKINIUM\_MATH\_PH\_88 之間嘅全連結距離。數學化啲噉講即係：

 WIKINIUM\_MATH\_PH\_90 ，當中 WIKINIUM\_MATH\_PH\_92
例如下圖條紅色線就係兩個聚類之間嘅全連結距離。全連結距離比較應付到「聚類之間有雜訊」嘅問題，但極端數據（例如有個個案啲數值極高或者極低）容易擾亂全連結計嘅數。

除咗單連結同全連結之外，另外一種做法係計啲點配對嘅距離值（ WIKINIUM\_MATH\_PH\_94 ）嘅平均值呀噉。

## 建立聚類

手上揸住數據，諗好「要用咩方法計相似度」之後，通常就會郁手建立聚類。

### 等級聚類法

6 個個案嘅等級聚類嘅樹狀結構圖例子
等級聚類法係最常用嘅聚類分析演算法之一。大致可以分做兩大類：

1. **凝聚式**同埋
2. **分割式**。

凝聚式嘅演算法係噉嘅：一開始嗰陣當每一點（一點係一個個案）自成一個聚類，然後迴圈若干次，嘗試將拃個案結合做一個聚類，具體啲講即係噉－

```
 建立個矩陣（相似值矩陣），表示每對個案之間嘅相似值；
 設每個個案自成一個聚類；
 重複若干次：
   結合最接近（相似值最高）嗰兩個聚類；
   更新相似值矩陣；
 做到淨低一個聚類為止。
```

舉例說明，好似附圖嗰幅樹狀結構圖噉，想像家陣有 6 個個案 a b c d e f，

1. 第一步將 a b c d e f 每個個案做一個聚類，
2. 第二步考慮相似度數值，將 b 同 c 結合變成 bc 以及將 d 同 e 結合變成 de；
3. 第三步又考慮相似度數值，將 de 同 f 結合變成 def；
4. 第四步考慮相似度數值，將 bc 同 def 結合變成 bcdef；
5. 最後一步，將 a 結合埋落去成一個單一聚類 abcdef；

跟住研究者就會得到一幅樹狀結構圖，可以揀喺邊個位「切割」樖樹狀結構圖，決定啲聚類要點分（下圖條**粗**黑線係研究者打算設嘅切割點）－例如假想第一步結合嗰兩個聚類之間嘅距離係 WIKINIUM\_MATH\_PH\_96 咁多，第二步同第三步結合嗰陣「結合咗嗰兩個聚類之間嘅距離」都係 WIKINIUM\_MATH\_PH\_98 咁上下，但第五步結合嗰陣「結合咗嗰兩個聚類之間嘅距離」係成 WIKINIUM\_MATH\_PH\_100 咁多，噉研究者好大機會會想喺第四步嗰度**停手**。

分割式嘅等級聚類法，簡化講可以想像成上述過程嘅相反－開始嗰陣將啲個案冚唪唥當做一個聚類，每一步將「最唔相似」（例如離啲個案嘅中心點最遠）嗰個個案攞走畀佢自成一個聚類，切割到每個個案都係自成一個聚類為止，跟住畀分析者揀要喺邊一步停手。

### K-平均聚類法

而家 WIKINIUM\_MATH\_PH\_102 ，研究者想將啲數據分做三個聚類－由藍色圓圈、黃色交叉同埋紅色十字代表。
K-平均聚類法係另一種常用嘅聚類分析演算法。K-平均聚類法嘅出發點係假定咗已知拃數據分幾多個聚類（聚類數量 WIKINIUM\_MATH\_PH\_104 ）。喺最簡單嗰種情況下，K-平均聚類法可以噉嚟想像：

* 設 WIKINIUM\_MATH\_PH\_106 做個案嘅數量而 WIKINIUM\_MATH\_PH\_108 做聚類數量；
* 建立 WIKINIUM\_MATH\_PH\_110 咁多個**中心點**，每個中心點嘅位置叫 WIKINIUM\_MATH\_PH\_112 ；
* 是但攞其中一個個案 WIKINIUM\_MATH\_PH\_114 嚟睇， WIKINIUM\_MATH\_PH\_116 表示 WIKINIUM\_MATH\_PH\_118 同離佢最近嗰個 WIKINIUM\_MATH\_PH\_120 之間嘅距離；
* 慢慢調節啲中心點嘅位置，務求令啲 WIKINIUM\_MATH\_PH\_122 嘅總值有咁細得咁細。

數學化啲噉講，K-平均聚類法係要將 WIKINIUM\_MATH\_PH\_124 個個案分拆做 WIKINIUM\_MATH\_PH\_126 個集（ WIKINIUM\_MATH\_PH\_128 ）， WIKINIUM\_MATH\_PH\_130 ，搵出：

 WIKINIUM\_MATH\_PH\_132
K-平均聚類法亦可以用圖嚟表示。睇吓附圖幅 gif：想像家陣 WIKINIUM\_MATH\_PH\_134 ，研究者想將啲數據分做三個聚類－聚類由藍色圓圈、黃色交叉同埋紅色十字代表；當中大藍色圓圈、大黃色交叉同大紅色十字表示嗰三個聚類嘅預想中心點；K-平均聚類法就可以當成一次一次（隨住 `iteration` 數值上升）噉郁動三個中心點，直接達到理想數值（例如 WIKINIUM\_MATH\_PH\_136 嘅總值去到最細）為止。

### 中點周邊分區

順帶一提，中點周邊分區係種同 K-平均聚類法好似嘅做法，最基本如下：

1. **BUILD**：首先，段演算法揀一點做**中點**，揀嘅原則係揀**成本**（可以用同其他所有點之間嘅總距離）最低嗰點；
2. **重複**：揀成本最低嗰點出嚟做中點，直至揀咗 WIKINIUM\_MATH\_PH\_138 點出嚟為止；
3. 將每點唔屬中點嘅點，掕落離佢最近嗰粒中點度；
4. **SWAP**：如果能夠令成本下降，一路做
	* Foreach 中點 WIKINIUM\_MATH\_PH\_140 ，foreach 喺佢個聚類內嘅非中點 WIKINIUM\_MATH\_PH\_142 ：
		+ 考慮將 WIKINIUM\_MATH\_PH\_144 同 WIKINIUM\_MATH\_PH\_146 掉換，計吓兩者掉換咗嘅話成本會點變；
		+ 如果場掉換係目前最好（最能夠令成本跌）嘅，記住呢場掉換；
	* 如果做出最好嗰場 WIKINIUM\_MATH\_PH\_148 WIKINIUM\_MATH\_PH\_150 掉換會令成本跌，就郁手做；否則段演算法就算行完。

PAM 唔少人用（下圖係 WIKINIUM\_MATH\_PH\_152 嘅 gif 圖解），而且好多做統計相關工作嘅人都鍾意「PAM 冇乜隨機」呢一樣嘢，不過 PAM 又畀人詬病話佢計得慢－PAM 要係噉計「呢點呢點同其他所有點之間嘅距離嘅總和」。

PAM 嘅 gif 圖解， WIKINIUM\_MATH\_PH\_154
### 基於分佈

基於分佈聚類法嘅圖解
基於分佈聚類法建基於概率分佈嘅諗頭，最大嘅特性係會由統計模型主導。

好似等級聚類法同 K-平均聚類法等嘅做法，都係**冇任何模型喺背後**嘅－呢啲做法唔會對「產生啲數據嘅現實過程，可以用乜數學模型嚟模擬」呢點有任何嘅假設。基於分佈聚類法就唔同－呢種做法嘅核心諗頭在於

|  |  |  |
| --- | --- | --- |
| 「 | 要建立統計模型嚟模擬產生啲數據嗰種現象，再同每件數據計吓『呢件數據最大機率屬邊個聚類』。 | 」 |

附圖展示咗基於分佈聚類法嘅根本諗頭：想像家陣三個聚類，每個聚類當係一個常態分佈（最近聚類中央嘅數值愈大機率出現）－圖入面每個深色圓圈嘅圓心係聚類中央，如果啲數據係跟常態分佈出現嘅話，愈深色嘅位會愈多個案。

基於分佈聚類法有多種唔同嘅演算法做，最基本上可以想像成：

1. 設 WIKINIUM\_MATH\_PH\_156 咁多個聚類；
2. 攞住啲數據，用最大似然估計等嘅方法估計出數據背後嘅模型參數 WIKINIUM\_MATH\_PH\_158 ，例如 MLE 個做法簡單講係
	* 設定嗰 WIKINIUM\_MATH\_PH\_160 個聚類嘅 WIKINIUM\_MATH\_PH\_162 （ WIKINIUM\_MATH\_PH\_164 包括嗰個聚類中心嘅位置等嘅參數），
	* 計吓喺 WIKINIUM\_MATH\_PH\_166 下「出到手上睇到嗰拃數據嘅機率」（ WIKINIUM\_MATH\_PH\_168 ）係幾多，
	* 調節吓啲參數，調節到令 WIKINIUM\_MATH\_PH\_170 有咁大得咁大為止；
3. 得出理想嘅 WIKINIUM\_MATH\_PH\_172 數值之後，決定每個個案喺 WIKINIUM\_MATH\_PH\_174 之下屬邊個聚類。

基於分佈聚類法都係要事先講定 WIKINIUM\_MATH\_PH\_176 嘅數值，呢點同 K-平均聚類法一樣。

### 基於密度

基於密度聚類法係種「唔使事先指定 WIKINIUM\_MATH\_PH\_178 嘅數值」嘅聚類分析做法（唔似得 K-平均聚類法或者中點周邊分區噉）。基於密度法由兩個參數定義：

* WIKINIUM\_MATH\_PH\_180 ，一個圓形嘅半徑；同埋
* WIKINIUM\_MATH\_PH\_182 ，最少要有幾多點先算唔係雜訊；

基於密度法最基本個諗頭係要將「密度高嘅區域」同「密度低嘅區域」分開。如果一個區域嘅個案密度高過（事先定好嘅）臨界值，先至會算係一個聚類嘅一部份，否則就會畀段演算法當係雜訊。喺 2020 年代初，DBSCAN 可以話係最多人用嘅基於密度聚類法之一，DBSCAN 步驟如下：

* 想像有一點 WIKINIUM\_MATH\_PH\_184 ，如果佢周圍半徑 WIKINIUM\_MATH\_PH\_186 嘅範圍內超過咗 WIKINIUM\_MATH\_PH\_188 咁多點，噉佢就算係**核心點**；
* 想像有兩點 WIKINIUM\_MATH\_PH\_190 同 WIKINIUM\_MATH\_PH\_192 ，如果 WIKINIUM\_MATH\_PH\_194 （兩點之間嘅距離） WIKINIUM\_MATH\_PH\_196 ，噉 WIKINIUM\_MATH\_PH\_198 算係**可以由 WIKINIUM\_MATH\_PH\_200 直接去到**；順帶一提， WIKINIUM\_MATH\_PH\_202 一定要係核心點。
* 想像有兩點 WIKINIUM\_MATH\_PH\_204 同 WIKINIUM\_MATH\_PH\_206 ，如果有條路徑 WIKINIUM\_MATH\_PH\_208 ，當中 WIKINIUM\_MATH\_PH\_210 而且 WIKINIUM\_MATH\_PH\_212 ，期間每點（ WIKINIUM\_MATH\_PH\_214 等）都可以由打前嗰點**直接去到**嘅，噉 WIKINIUM\_MATH\_PH\_216 算係**可以由 WIKINIUM\_MATH\_PH\_218 去到**；
* 所有「唔能夠由第啲點度去到」嘅點，冚唪唥當係雜訊。

如果 WIKINIUM\_MATH\_PH\_220 係核心點，噉佢同所有由佢度去到嘅點成一個聚類。

用圖像表示嘅話，可以想像下圖：下圖 WIKINIUM\_MATH\_PH\_222 ，A 等嘅紅色點全部都係核心點，因為佢哋全部都有「周圍 WIKINIUM\_MATH\_PH\_224 咁遠嘅範圍（啲圓圈）內有超過 WIKINIUM\_MATH\_PH\_226 咁多點」呢種特性，黃色點 B 同 C 唔係核心點，但可以由 A 去到，於是啲紅色點加埋 B 同 C，就成一個聚類；藍色點 N 唔能夠由任何一點度去到，所以當係雜訊忽視。

## 結果核證

做聚類分析另一個重要步驟，就係要評估場分析嘅結果，即係**核證**個結果：現實表明，唔同聚類分析做法得出嘅結果都可能會唔同，例如同一拃數據，發覺用 WIKINIUM\_MATH\_PH\_228 嘅 K-平均聚類法會搵到個似樣嘅結果，但用凝聚式等級聚類法，得出嗰個結果係 WIKINIUM\_MATH\_PH\_230 ；為咗應付呢個問題，統計學界就有咗所謂嘅聚類分析結果**指標**－每種指標都會畀出一個數值（叫個數值做 WIKINIUM\_MATH\_PH\_232 ）， WIKINIUM\_MATH\_PH\_234 會客觀噉話到畀研究者知「呢個聚類結果有幾好」，例如 「 WIKINIUM\_MATH\_PH\_236 數值愈大愈表示個結果好」呀噉；噉想像研究者家吓發覺 WIKINIUM\_MATH\_PH\_238 嗰個結果（同 WIKINIUM\_MATH\_PH\_240 嗰個結果比起嚟）個 WIKINIUM\_MATH\_PH\_242 數值靚啲，噉佢就有理由揀用 WIKINIUM\_MATH\_PH\_244 嗰個結果。

一般認為，要核證一個聚類分析結果，其中一個簡單直接嘅做法係重複場分析（睇埋再現）：例如同一拃數據，用幾隻唔同嘅聚類方各行一次，睇吓係咪隻隻方法都出到相同數量嘅聚類；研究者又可以事先將拃數據斬開做兩份，同兩份數據分別噉各行一次方法一樣嘅聚類分析，睇吓兩次分析係咪都得出同一樣嘅結果... 呀噉。

亦都有種做法係統計師得出聚類分析嘅解之後，首先要估計吓每個聚類嘅密度，再將得出嘅密度估計同虛無模型（嚟自隨機化嘅數據集）嘅密度比較，密度低過虛無模型嘅聚類就棄置。不過呢種做法，一定要個樣本有返咁上下大嘅時候先至啱用。

### 評估指標

要評估聚類分析嘅結果，可以用由數據度計出嚟嘅值，呢啲值通常係基於一個簡單、合乎直覺嘅諗頭：是但攞兩個個案嚟睇，屬同聚類嘅個案理應要相似，而屬唔同聚類嘅個案理應要唔相似；因為呢點正正係聚類分析定義上要做到嘅嘢。至於要點樣計「同聚類嘅個案之間嘅相似度」同埋「唔同聚類嘅個案之間嘅相似度」，可以有好多種做法：

* D-B 指數：以下呢條式出嘅數值：
 WIKINIUM\_MATH\_PH\_246 ，當中
	+ WIKINIUM\_MATH\_PH\_248 係聚類嘅數量，
	+ WIKINIUM\_MATH\_PH\_250 係聚類 WIKINIUM\_MATH\_PH\_252 嘅幾何中心，
	+ WIKINIUM\_MATH\_PH\_254 係聚類 WIKINIUM\_MATH\_PH\_256 入面啲個案平均離 WIKINIUM\_MATH\_PH\_258 幾遠（反映個聚類嘅內部差異），
	+ WIKINIUM\_MATH\_PH\_260 係聚類 WIKINIUM\_MATH\_PH\_262 同 聚類 WIKINIUM\_MATH\_PH\_264 之間嘅距離。
	+ D-B 指數數值低，就表示啲聚類內部差異細同埋聚類之間嘅距離大，所以一般認為 D-B 指數係數值愈細愈好。
* 頓氏指數：以下呢條式出嘅數值：
 WIKINIUM\_MATH\_PH\_266 ，當中
	+ WIKINIUM\_MATH\_PH\_268 係聚類 WIKINIUM\_MATH\_PH\_270 同 聚類 WIKINIUM\_MATH\_PH\_272 之間嘅距離，
	+ WIKINIUM\_MATH\_PH\_274 係聚類 WIKINIUM\_MATH\_PH\_276 嘅內部個案間距離，
	+ 淺白啲講，上面條式講嘅係「 WIKINIUM\_MATH\_PH\_278 等如最細嗰個 WIKINIUM\_MATH\_PH\_280 除以最大嗰個 WIKINIUM\_MATH\_PH\_282 」。 WIKINIUM\_MATH\_PH\_284 一般認為係數值愈大愈好。
* 輪廓系數：想像以下嘅思路：
	+ 設 WIKINIUM\_MATH\_PH\_286 做拃數據入面嘅一個個案，而 WIKINIUM\_MATH\_PH\_288 係 WIKINIUM\_MATH\_PH\_290 所屬嗰個聚類；
	+ WIKINIUM\_MATH\_PH\_292 指 WIKINIUM\_MATH\_PH\_294 大致同 WIKINIUM\_MATH\_PH\_296 入面啲個案有幾**唔**似（距離幾遠）；
	+ WIKINIUM\_MATH\_PH\_298 指 WIKINIUM\_MATH\_PH\_300 大致同 WIKINIUM\_MATH\_PH\_302 以外嘅物件有幾**唔**似（距離幾遠）， WIKINIUM\_MATH\_PH\_304
	+ 計 WIKINIUM\_MATH\_PH\_306
	+ 如果 WIKINIUM\_MATH\_PH\_308 淨係得 WIKINIUM\_MATH\_PH\_310 一個個案，噉 WIKINIUM\_MATH\_PH\_312 ；每個個案 WIKINIUM\_MATH\_PH\_314 數值都會喺 -1 同 1 之間（ WIKINIUM\_MATH\_PH\_316 ），跟住就可以考慮咁多個個案嘅平均 WIKINIUM\_MATH\_PH\_318 ，而呢個平均 WIKINIUM\_MATH\_PH\_320 值係愈近 1 愈好，而
	 WIKINIUM\_MATH\_PH\_322
		- 係最惡劣嘅情況。

... 呀噉。有咗噉嘅指標，就有得評估聚類分析嘅結果：例如想像家陣同一拃數據，用咗 A B C 三隻唔同嘅演算法做聚類分析出三個唔同結果，但研究者發覺 A 出嘅結果 WIKINIUM\_MATH\_PH\_324 數值最低而且 WIKINIUM\_MATH\_PH\_326 數值最高，噉研究者就有理由話 A 出到嘅結果好過 B 同 C 出到嘅。

可以睇埋貝葉斯資訊量準則同埋赤池資訊量準則。

## 應用

喺廿一世紀初，聚類分析廣受採用：呢種方法被指係有好多好處；首先，呢種做法可以喺內部差異嘅群體嗰度搵出幾個內部差異細嘅群體，達致有效噉簡化手上嘅數據；而經驗已經表明，手上嘅變數好少可真係彼此獨立嘅，變數間有明顯嘅相關，就表示研究者唔可以將啲變數分開噉嚟分析；事實表明，若干個因素夾埋一齊達到嘅效果，可以大過個別因素單獨出現嗰時達到得嘅，而聚類分析同時考慮多個因素，就唔會好似（例如）單純嘅線性迴歸分析噉畀出有誤導性嘅結果。

### 市場學

2019 年有個人喺度行街買嘢；唔同類嘅人喺使錢習慣上有冇分別呢？
市場學—研究點樣賣自己產品嘅商學—時不時都會用到聚類分析。

市場劃分係市場學（尤其係市場研究）上嘅一種重要工作：好多時，一個市場入面有高嘅多樣性－唔同性別、年紀同社會階層嘅人使起錢上嚟嘅行為都會唔同；因為噉，市場學專家喺分析一個市場嗰陣，好興會將個市場按呢啲特性劃分做若干個子市場，每一個子市場內部嘅個體喺某啲特性上相近，簡單嘅例子有將個市場分做**男人**同**女人**。進階啲嘅市場劃分可以用聚類分析嚟做，想像－

* 市場學專家做數據收集，最簡單係做問卷調查，搵一拃消費者返嚟，每個都問佢一拃同使錢習慣有關嘅問題；
* 得出一個數據庫，個數據庫會有若干個個案（每位消費者都係一個個案），而每個個案都喺若干個變數上有數值，當中「變數」可能包括咗「每個禮拜有幾多日會去行街買嘢」、「每個月平均使幾多錢買衫」、「每個月平均使幾多錢買電腦嘢」... 呀噉；
* 對啲數據行聚類分析；
* 喺打後嘅分析當中，將「屬於邊個聚類」當做一個離散變數。

噉就可以得出「個市場入面，有邊幾大類嘅消費者，每類消費者啲消費行為係點」噉嘅資訊。

### 犯罪學

犯罪學係社會科學嘅一門，專研究犯罪行為，會思考「點樣啲人會想犯罪」同埋「點樣有效噉阻止啲人犯罪」等嘅問題。

犯罪分析係犯罪學工作者成日做嘅一樣嘢，泛指對由罪案度得到嘅數據（例如每單案喺邊度發生、喺咩時間發生、犯罪者同受害者分別有咩特徵... 等等）進行分析，並且嘗試搵出犯罪行為當中有嘅規律。犯罪分析好興深究罪案嘅空間特性（發生咩地點），而呢點成日會用到聚類分析，（簡化噉講）想像家陣研究者想分析謀殺案，用以下噉嘅做法：

* 研究者參考警方數據庫等嘅來源，搵到一拃 WIKINIUM\_MATH\_PH\_328 個個案返嚟，每個個案係一單謀殺案，啲數據記錄嗮每單案係喺邊度（地圖上有座標位置）發生嘅；
* 研究者對拃數據行聚類分析；
* 最後得出一拃聚類，每個聚類都係一笪「零舍多謀殺案發生」嘅地方；

得出聚類分析結果之後，研究者就搵到拃「零舍多謀殺案發生」嘅地方，可以做進一步嘅分析，例如係再睇多啲數據，睇吓呢啲地方（喺經濟同人口特性等嘅變數上）有咩共通點，噉就有可能搵出「咩因素最會搞到一笪地方多謀殺案」呢條問題嘅答案，而呢樣資訊可以幫到犯罪學工作者手度「點樣減少謀殺案」噉嘅問題。

2014 年墨西哥各地嘅謀殺案數據；邊啲地方零舍多謀殺案發生（有高密度嘅聚類）呢？嗰啲地方有咩共通點呢？
### 醫療健康

醫療同健康方面嘅領域都有用到做聚類分析。

喺呢方面，有關健康行為嘅研究就相當出名：健康心理學係心理學一門，專門將心理學上嘅概念用落醫療健康相關工作上；健康心理學其中一個最多人關注嘅課題，就係要點樣鼓勵健康行為，即係－

|  |  |  |
| --- | --- | --- |
| 「 | 點樣改變啲人嘅行為，令佢哋做多啲對健康有利嘅行為（例如食蔬菜同生果），同令佢哋做少啲對健康有害嘅行為（例如食煙）呢？ | 」 |

過往嘅實驗研究表明咗，健康行為好大程度上傾向「聚埋一齊」，即係喺一樣行為上健康嘅人，傾向會喺第啲行為上都健康（即係例如食嘢食得健康嘅人，傾向都會做運動）。想像以下噉嘅研究：

* 研究會搵 WIKINIUM\_MATH\_PH\_330 位受訪者返嚟，用問卷等嘅方法問吓佢哋（例如）每個禮拜幾多餐係食垃圾食物，或者每個禮拜飲幾多酒... 呀噉；
* 數據入面有 WIKINIUM\_MATH\_PH\_332 個個案，每個個案係一位受訪者，喺「每個禮拜幾多餐係食垃圾食物」等多個變數上都有個數值；
* 研究者對拃數據行聚類分析；
* 最後得出一拃聚類，出到「成日食垃圾食物又少食生果嘅人」同「少食垃圾食物又少食生果嘅人」等多個聚類；

| 多種對健康有重大影響嘅行為 |
| --- |
|

|  |
| --- |
| 食蔬菜同生果 |
| 食蔬菜同生果  |

|  |
| --- |
| 食煙 |
| 食煙  |

|  |
| --- |
| 運動 |
| 運動  |

 |

然後研究者可以做進一步嘅分析，睇吓每個聚類分別有咩特性，例如可能「成日食垃圾食物又少食生果嘅人」嗰個聚類零舍多青少年；噉研究者就可以作出「家陣想做宣傳，教啲人食得健康啲，呢啲宣傳有必要專針對青少年嚟做」呢類嘅推論。事實係，聚類分析廣泛噉畀醫療健康方面嘅工作者探究「呢類呢類群體嘅人，會唔會零舍容易有某啲唔健康行為」、「點解有啲人行為上健康啲」同埋「有冇方法可以鼓勵啲人行為上健康啲」等嘅應用問題。

### 互聯網

2018 年 Twitter 一角嘅留言；社交媒體工作者成日都會分析呢啲留言。
喺互聯網相關工作上，聚類分析可以攞嚟分析社交媒體等地方嘅社會網絡。

好似係對社交媒體做嘅文本探勘噉：社交媒體嘅用家好多時都會喺社交媒體上面留言，呢啲留言冚唪唥都係有用嘅數據，可以畀到（例如）「啲人對呢位呢位名人有咩意見」噉嘅資訊；互聯網相關嘅工作者，好多都想對呢啲數據做文本探勘（嘗試搵出文字數據當中存在嘅規律），例如可能想結合市場學上嘅分析，靠睇啲人喺社交媒體上嘅留言，得知佢哋對某隻產品有咩觀感（文本情感分析）... 呀噉；簡化講，可以想像好似以下噉嘅做法：

* 研究者搜集咗一大拃（ WIKINIUM\_MATH\_PH\_334 咁多件）社交媒體上嘅留言返嚟，每件留言係一個個案，數據包含每段留言嘅內容（用自然語言寫嘅）；
* 研究者攞住語義距離相關嘅技術－語義距離係自然語言處理（教電腦處理自然語言嘅技術）嘅一套技術，能夠做到攞兩隻詞語（input）畀出個數（output），表示嗰兩隻詞語之間喺意思上爭幾遠；
* 研究者用語義距離，計出每對留言之間喺意思上爭幾遠；
* 對拃數據行聚類分析；
* 最後得出一拃聚類，出到多個聚類，每個聚類可以大致當係表示緊「一套多人信嘅意見」；

順利嘅話，研究者就大致了解到「社交媒體上嘅人，按意見分可以大致分做邊幾派」，而呢樣資訊有助於市場學等嘅工作。

### 人工智能

人工智能（AI）係電腦科學嘅一門，專研究點樣教電腦展示出好似人噉嘅有智能行為，模擬人腦做嘅資訊處理過程，而正如上面所述，聚類分析响理論上就好接近人腦處理語言嗰陣嘅諗嘢方式。事實係，有唔少 AI 方面嘅工作都有用到聚類分析，即係教部電腦自動噉對某啲數據做聚類分析，得出想要嘅效果。

舉例說明，異常檢測可以話係 AI 上最直接嘅聚類分析應用之一：異常檢測指攞一大拃個案，並且搵出啲同手上嘅大多數個案都唔同嘅異常個案，好多時係因為呢啲個案有啲可疑－例如係喺醫療上探測邊啲病人身體狀況數據（血壓同心跳率等嘅變數）異常，又或者喺金融上探測邊啲交易唔尋常（例如「短時間內出現多單交易」好多時都唔尋常，可能有詐騙）... 呀噉；教電腦自動噉做異常檢測可以將睇病或者檢查金融紀錄等嘅工作自動化。

簡化噉講，可以想像以下嘅做法：

* 攞一拃過往嘅數據，呢拃數據包含咗「正常嘅電郵來往」個案同埋「有古惑嘢（例如有釣魚）嘅電郵來往」個案；
* 每個個案，啲數據都紀錄咗啲有用嘅變數描述佢，簡單嘅例如係嗰份電郵「由咩地址寄出」或者「有冇包含超連結」呀噉；
* 對呢啲個案做聚類分析；
* 睇吓「正常嘅電郵來往」同「有古惑嘢嘅電郵來往」可唔可以清楚噉分做兩個聚類，可以嘅話去下一步；
* 教部電腦「今後用手上嘅聚類結果，同每份電郵計吓嗰份電郵似正常多啲定係似有古惑嘢嘅多啲，有古惑嘢嘅就出警報」。

噉嘅話，就可以做到「教電腦自動噉探測邊啲電郵有異常（異常檢測）」噉嘅效果。

## 統計概念

* 蝸特方法：等級聚類法上會用到嘅聚類間距離計法，通常會配合歐幾里得距離嚟用；喺等級聚類法嘅每一步，蝸特方法都會做以下嘅嘢－
	1. 計個聚類嘅平均位置；
	2. Foreach 聚類，foreach 個聚類內部嘅物件，計件物件同個聚類嘅平均位置嘅距離；
	3. Foreach 第 2 步攞到嗰啲距離值，計佢嘅二次方；
	4. 將第 3 步攞到嗰啲數值冚唪唥加埋嗮一齊；
	+ 最後就會得出個數值（叫呢個值做 WIKINIUM\_MATH\_PH\_336 ），反映啲聚類內部差異有幾大，而段演算法就會以「令 WIKINIUM\_MATH\_PH\_338 有咁細得咁細」做目標，（例如）喺每步揀將邊兩個聚類結合嗰陣，揀能夠令 WIKINIUM\_MATH\_PH\_340 有咁細得咁細嗰個方案。蝸特方法廣受採用，被指能夠有效噉達致出嘅聚類個個大細相約。
* 混合物模型：算係結構方程模型一種，好似聚類分析噉係一種「將數據入面啲個案分做若干組，每組內部差異細，但分析前唔知每個個案『屬邊一組』」嘅探索性質統計方法；同聚類分析嘅分別係，混合物模型唔係建基於對相似度嘅考慮，而且 output 係出「呢個呢個個案，屬呢組（每組係個**潛在類別**）嘅機率係咁多咁多」－唔似得聚類分析噉，會同每個個案有個明確嘅「佢屬邊個聚類」宣稱。混合物模型會
	1. 攞啲個案喺若干個（一般係起碼 4 至 10 個）變數上嘅數值，
	2. 再用最大似然估計等嘅方法，估計出個模型，
	3. 個模型會講明每個潛在類別喺啲變數上係點嘅樣，再同每個個案計吓「佢屬潛在類別 A 嘅機率」、「佢屬潛在類別 B 嘅機率」同埋「佢屬潛在類別 C 嘅機率」... 呀噉。
* 名目量度：行完聚類分析之後，每個個案都會多咗「屬邊個聚類」呢樣特性，呢個變數屬名目量度，可以攞嚟做進一步嘅分析，簡單嘅可以用 t 測試比較兩個聚類。
* T 測試：可以用嚟比較兩個唔同聚類之間喺一個連續變數上有咩差異。睇埋多重比較問題同邦佛朗尼校正。
* 卡方檢定：用嚟分析名目量度型變數嘅一種統計分析法。
* 邏輯迴歸
* MANOVA

## 睇埋

* 神經網絡（線性分類機）
* 人口統計
* 語言認知
* 異常值
* 多穩態
* 互通程度

## 文獻

* Clatworthy, J., Buick, D., Hankins, M., Weinman, J., & Horne, R. (2005). The use and reporting of cluster analysis in health psychology: A review (PDF). *British journal of health psychology*, 10(3), 329-358.
* Crockett, K. A., Mclean, D., Latham, A., & Alnajran, N. (2017). Cluster analysis of twitter data: A review of algorithms (PDF). In *Proceedings of the 9th International Conference on Agents and Artificial Intelligence* (Vol. 2, pp. 239-249). Science and Technology Publications (SCITEPRESS)/Springer Books，呢篇文綜述咗當時有嘅聚類分析演算法，攞嚟分析社交媒體上嘅留言。
* Halim, Z., Atif, M., Rashid, A., & Edwin, C. A. (2017). Profiling players using real-world datasets: Clustering the data and correlating the results with the big-five personality traits. *IEEE transactions on affective computing*, 10(4), 568-584，呢篇文提及一份研究，試對即時戰略遊戲嘅玩家嘅行為做聚類分析 profiling，然後仲配上人工神經網絡嚟預測將來遇到嘅玩家嘅個性。
* Hochin, T., Hayashi, Y., Nomiya, H., & Chowdhury, M. (2018). Quasi-optimality under pseudo F statistic in clustering data. *International Journal of Engineering and Technology (UAE)*, 7(2), 320-324，呢篇文探討用類似方差分析（ANOVA）噉嘅方法評估聚類方案－呢套方法係想計「聚類間距離」同埋「聚類內距離」之間嘅比例（pseudo-F index），用嚟評估聚類方案。
* Landau, S., & Ster, I. C. (2010). Cluster analysis: overview (PDF). *Á Á*, 11(x12), x1p.
* Metzner, C., Schilling, A., Traxdorf, M., Tziridis, K., Maier, A., Schulze, H. and Krauss, P., 2022. Classification at the accuracy limit: facing the problem of data ambiguity. *Scientific reports*, 12(1), p.22121.
* Peachavanish, R. (2016, March). Stock selection and trading based on cluster analysis of trend and momentum indicators (PDF). In *Proceedings of the International MultiConference of Engineers and Computer Scientists* (Vol. 1, pp. 317-321). IMECS，呢篇文提議話，唔同上市公司嘅股票可以按「近排嘅升勢」等嘅特性嚟分聚類。睇埋動量投資等嘅概念。
* Punj, G., & Stewart, D. W. (1983). Cluster analysis in marketing research: Review and suggestions for application (PDF). *Journal of marketing research*, 20(2), 134-148.
* Rahmah, N., & Sitanggang, I. S. (2016). Determination of optimal epsilon (eps) value on dbscan algorithm to clustering data on peatland hotspots in sumatra (PDF). In *IOP conference series: earth and environmental science* (Vol. 31, No. 1, p. 012012). IoP Publishing，呢篇文教人用 DBSCAN。
* Taylor, S., Lambeth, D., Green, G., Bone, R., & Cahillane, M. A. (2012). Cluster analysis examination of serial killer profiling categories: A bottom‐up approach (PDF). *Journal of Investigative Psychology and Offender Profiling*, 9(1), 30-51，呢篇文對連環殺人犯嘅數據進行聚類分析，想知連環殺人犯有冇得再細分做幾類。

## 註釋

## 引咗

篇文用咗嘅行話或者專有名詞，英文名如下：

篇文引用咗以下呢啲文獻同網頁：

## 拎

* （英文） 聚類分析. *Qualtrics XM*，講聚類分析嘅基礎。
* （英文） SPSS 聚類分析 (PDF)，教點樣用 SPSS 做聚類分析。
* （英文） 做聚類分析，都係教點樣用 SPSS 做聚類分析。
* （英文） DBScan R 語言聚類分析, *GeeksForGeeks*，教點樣用 R 語言嚟做 DBSCAN 嘅聚類分析。