歡迎來到機器學習:非監督式學習!

你好!歡迎來到 CS2 課程中最現代化且令人興奮的章節之一。到目前為止,你可能已經學過許多旨在預測特定結果的模型(例如預測保單持有人是否會提出索償),這就是所謂的「監督式學習」(Supervised Learning)。

在本章中,我們將探討非監督式學習(Unsupervised Learning)。你可以把它想像成「偵探工作」。我們手頭有一堆數據,但沒有特定的「標籤」(labels)或「目標答案」。我們的目標是找出隱藏的規律、將相似的項目分組,並簡化複雜的資訊。對於處理「大數據」的現代精算師來說,這是一項至關重要的工具。

如果剛開始覺得這些概念有點抽象,別擔心!我們會將其拆解為簡單的步驟,並輔以大量的類比來幫助你理解!


1. 理解非監督式學習

在非監督式學習中,我們提供給電腦輸入數據 \( (X) \),但沒有輸出標籤 \( (Y) \)。機器會自行探索數據,以找出潛在結構(latent substructures,即隱藏規律)。

我們為什麼要使用它?
1. 降維(Dimension Reduction): 將包含 100 個變量的數據簡化為僅 3 或 4 個重要的變量。
2. 聚類(Clustering): 將行為相似的客戶或風險進行分組。
3. 異常偵測(Anomaly Detection): 找出那些「格格不入」的數據點,這可能代表詐欺或異常風險。


2. 主成分分析 (PCA)

試想你正在嘗試描述一個人。你可以列出他們的身高、體重、手臂長度、腿長和鞋碼。這些變量太多了!然而,這些變量大多與「體型」有關。PCA 可以幫助我們將這些相關的變量組合成一個單一的「主成分」,稱為整體體型(Overall Size)。

什麼是 PCA?

PCA 是一種用於降維的技術。它將一組大型的相關變量轉換為一組較小的、互不相關的變量,稱為主成分(Principal Components, PCs)

運作方式(步驟說明):

1. 標準化數據: 由於 PCA 對測量尺度(例如米與厘米)非常敏感,我們通常會先對數據進行縮放,使每個變量的平均值為 0,變異數為 1。
2. 找出第一個主成分(\( PC_1 \)): 這是原始變量的一個線性組合,它捕獲了數據中最大可能的變異數
3. 找出第二個主成分(\( PC_2 \)): 這是另一個線性組合,與第一個主成分正交(即呈直角),並捕獲剩餘變異數中最大的一部分。
4. 重複: 我們繼續這個過程,直到獲得與原始變量數量相同的主成分為止。

背後的數學原理

主成分可以表示為:
\( PC_1 = \phi_{1,1}X_1 + \phi_{2,1}X_2 + ... + \phi_{p,1}X_p \)
其中:
- \( X \) 是我們的原始變量。
- \( \phi \) (phi) 是載荷(loadings)。它們告訴我們每個原始變量在該主成分中所佔的權重。

快速複習:PCA 的關鍵特徵
  • 第一個主成分總是解釋最多的變異數。
  • 每個後續的主成分都與之前的主成分互不相關
  • 我們通常只保留前幾個能解釋例如 80% 或 90% 總變異的主成分。

常見錯誤: 忘記對數據進行縮放!如果一個變量的單位是百萬,而另一個是小數,PCA 會錯誤地認為「百萬」那個變量才是唯一重要的。

重點總結: PCA 通過將許多變量壓縮成少數幾個「超級變量」,在保留盡可能多資訊(變異數)的同時簡化數據。


3. K-means 聚類

如果說 PCA 是關於變量的,那麼聚類就是關於觀測值(數據中的每一行)。K-means 聚類旨在將數據劃分為 \( K \) 個截然不同且互不重疊的組別。

類比說明

想像你有一袋混合的硬幣。你想把它們分成 3 堆(即 \( K=3 \))。你首先在桌面上挑選三個位置,將每個硬幣放到離它最近的那堆中。接著,你將每堆的中心移動到剛剛歸類好的硬幣群組的中間。你重複這個過程,直到這些堆的位置不再變動為止!

演算法步驟:

1. 選擇 K: 決定你想要多少個集群(例如 \( K=3 \))。
2. 初始化: 隨機指定每個 \( K \) 集群的「質心」(centroid,即中心點)。
3. 分配: 查看每個數據點,並將其分配到距離最近的質心所屬的集群(通常使用歐幾里得距離)。
4. 更新: 計算每個集群中所有點的新平均值(中心)。這將成為新的質心。
5. 迭代: 重複步驟 3 和 4,直到分配結果不再改變。

如何選擇「K」?

我們使用肘部法則(Elbow Method)。我們對不同的 \( K \) 值(1, 2, 3, 4...)運行演算法,並繪製「集群內總變異」。隨著 \( K \) 的增加,這種變異會下降。我們尋找圖表中像「手肘」或「彎曲處」的點,這表示再增加集群數對解釋數據的幫助已不大。

你知道嗎? K-means 是一種迭代演算法。由於它從隨機的質心開始,如果你運行兩次,可能會得到略有不同的結果。精算師通常會多次運行該算法,然後選擇最好的結果!

重點總結: K-means 通過最小化點與其集群中心之間的距離,找出相似數據點的「團塊」。


4. 潛在結構與異常偵測

現在我們知道了這些工具,我們該如何利用它們來尋找「潛在結構」或「異常值」呢?

識別潛在結構

「潛在結構」只是一個高級說法,意指隱藏的群體。
例子: 你有汽車保險投保人的數據。你運行 K-means 並發現兩個明顯的集群。一個集群擁有高里程數和市區駕駛習慣;另一個則擁有低里程數和鄉郊駕駛習慣。這個「結構」就是駕駛環境,而這在你原本的數據中並沒有被明確標記出來!

偵測異常

異常值(Anomalies)即離群值。我們可以利用上述兩種工具找到它們:
1. 透過聚類: 如果一個數據點距離任何集群中心都非常遠,它就是一個異常值。
2. 透過 PCA: 如果我們使用 PCA 將數據降維到二維,而某個點遠離其他數據點組成的「雲團」,那麼它就是一個異常值。

精算例子: 在詐欺偵測中,落入一個極小且孤立集群的索償,或者具有極不尋常 PCA 分數的索償,可能會被標記出來進行人工調查。


5. 總結與比較

最後我們用一個快速比較表來釐清重點:

特徵 主成分分析 (PCA) K-means 聚類
主要目標 減少變量的數量(降維)。 觀測值進行分組(聚類)。
核心概念 最大化變異數。 最小化組內距離。
輸出結果 新的變量(PCs),即線性組合。 每個數據點的標籤/群組。
記憶口訣 PCA = Pruning (修剪) 變量。 K-means = Kumping (即 Clumping/聚合) 數據。
考前最後提示:
  • PCA: 記住主成分(PCs)是互不相關的。這是常見的考題!
  • K-means: 記住這是一種非監督式方法。你不需要告訴模型群組是什麼,它會自己找出來。
  • 縮放: 務必提到在執行這些技術之前,數據應該進行標準化/縮放。

做得好!你已經掌握了 CS2 中非監督式學習的精髓。繼續練習歷屆試題,看看這些概念在數值題目中是如何呈現的!