歡迎來到數據轉換的集群分析(Clustering)!

你好!歡迎來到 Exam PA 當中最具創意的主題之一。通常我們提到集群(Clustering)時,會將其視為「最終目標」——例如將客戶細分為不同群組。但在這一章,我們將把集群視為一種工具,協助其他模型(如廣義線性模型 GLM 或決策樹)發揮更好效能。這就是我們所說的數據轉換(Data Transformation)。我們將學習如何將原始數據轉化為「集群標籤(Cluster labels)」,並將其作為預測模型中強大的新特徵。

如果非監督式學習(Unsupervised Learning)對你來說有點抽象,別擔心,我們會透過簡單的類比一步步拆解。讓我們開始吧!


1. 基礎概念:什麼是集群?

在利用集群進行數據轉換前,我們必須先了解它的定義。在非監督式學習中,我們沒有「目標」變量(即 y),只有特徵變量(即 x)。集群是找出數據中自然分組的過程,讓同一組內的數據點比其他組別的數據點更為相似。

快速回顧:想像一個雜亂的房間。集群就像是把所有的「襪子」堆成一堆,把「襯衫」堆成另一堆,即使沒有人告訴你哪件是哪件,你依然能觀察到襪子彼此看起來很相似,從而進行歸類!


2. K-means 集群

K-means 是最受歡迎的集群演算法。它嘗試將數據劃分為 K 個互不重疊的獨立群組。

K-means 的運作方式(步驟說明)

1. 選定 K 值: 你決定想要幾個集群(例如 K=3)。
2. 初始化: 電腦會隨機挑選 3 個點作為「起始中心」(稱為 中心點/質心,centroids)。
3. 指派: 每個數據點會根據距離,歸入離它最近的中心點組別。
4. 更新: 中心點會移動到各自新組別的幾何中心位置。
5. 重複: 重複步驟 3 和 4,直到中心點不再移動為止。

數據標準化(Scaling)的重要性

關鍵點: K-means 使用歐幾里得距離(Euclidean Distance)來決定歸類。其公式如下:
\( d(x, y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2} \)
由於涉及距離計算,你必須先對數據進行縮放(標準化)!如果一個變量是「年收入」(以千元計),另一個是「年齡」(0-100),收入變量會完全主導距離計算。標準化能讓它們在同一個起跑線上競爭。

常見錯誤: 在 PA 考試中,在執行 K-means 前忘記標準化是一個非常常見的錯誤。務必檢查你的變量是否處於不同的量級!

如何選擇正確的「K」值

我們如何知道 K 應該是 2、3 還是 10?我們使用肘部法則(Elbow Method)。我們繪製「組內平方和(Total Within-Cluster Sum of Squares,反映集群分散程度的指標)」與集群數量之間的關係圖,尋找那個「肘部」——即增加集群數量後效益遞減的轉折點。

重點總結: K-means 速度快且簡單,但你必須預先選擇 K 值,且當集群呈現球狀(圓形)時效果最好。


3. 階層式集群(Hierarchical Clustering)

與 K-means 不同,階層式集群不需要在開始時選擇「K」。相反,它會建立一個樹狀結構。

凝聚式(由下而上)集群

想像這是一個倒過來的家譜。每個數據點起初都是一個獨立的小集群。接著,兩個最接近的點合併成一對。然後,下一個最接近的對象再合併,依此類推,直到所有人最終匯聚成一個大群組。

樹狀圖(Dendrogram)

結果會呈現為樹狀圖(Dendrogram)——一個看起來像倒立樹木的美麗圖表。若要選擇集群數量,你只需在圖表上進行水平「切割」。切下去的位置就決定了你最終擁有的集群數量!

連鎖法則(Linkage):如何測量組間距離?

當合併兩個數據點「群組」時,我們需要一套測量距離的規則,這稱為連鎖法則(Linkage)
• 完全連鎖(Complete Linkage): 使用集群中距離「最遠」的兩個點之間的距離。
• 單一連鎖(Single Linkage): 使用距離「最近」的兩個點之間的距離(可能導致長條狀的集群)。
• 平均連鎖(Average Linkage): 使用所有成對點之間的平均距離。
• Ward 法(Ward’s Method): 最小化組內變異數(在精算工作中非常受歡迎,因為它產生的群組大小較均勻)。

重點總結: 階層式集群非常適合觀察群組之間的關係,但在處理非常龐大的數據集時可能會比較慢。


4. 使用集群進行數據轉換

這是 Exam PA 最重要的部分!一旦我們有了集群,該如何利用它們來建立更好的模型呢?

「集群歸屬」特徵

當演算法執行完畢,數據中的每一行都會獲得一個標籤(例如:集群 1、集群 2 或集群 3)。你可以將此標籤作為新的類別變量(categorical variable)加入數據集中。

為什麼這樣做有用?
1. 捕捉非線性關係: 簡單的 GLM 可能難以處理複雜模式。透過將相似的觀測值歸為一類,集群標籤能捕捉到線性項可能遺漏的行為「特徵」。
2. 識別交互作用(Interactions): 集群通常代表特徵的組合(例如:「高負債的年輕人」)。與其手動建立年齡與負債之間的交互作用項,集群標籤直接幫你完成了!
3. 降維: 有時使用 1 個概括了 10 個混亂變量的集群標籤,會讓模型更簡潔,且更容易向利害關係人解釋。

實際案例: 如果你正在預測汽車保險索賠,一個集群可能代表「城市高里程駕駛者」。即使你的模型沒有專門針對「地點 * 里程」的交互作用項,集群標籤也能作為一個捷徑,直接告訴模型:「嘿,這一組屬於高風險!」


5. 總結與最佳實踐

快速回顧箱:
• K-means: 速度快,需預先指定 K,需標準化,適合球狀集群。
• 階層式: 可視覺化(樹狀圖),無須預先指定 K,需選擇連鎖法則。
• 轉換: 將集群指派結果作為監督式學習模型(如 GLM 或 GBM)中的新類別特徵
• 標準化: 在進行集群分析前,務必對數值數據進行標準化!

你知道嗎? 集群分析常被稱為「尋找隱藏結構」。在 Exam PA 中,你的任務就是找出該結構,並利用它為你的預測模型提供「提示」,讓模型知道哪些觀測值是相似的。

最後的鼓勵: 如果你覺得各種連鎖法則或歐幾里得距離背後的數學概念讓人困惑,別被這些細節絆住。重點在於為什麼我們要進行集群分析:為了簡化複雜數據,並創造出新的特徵,幫助模型更清晰地識別模式。你做得到的!