非監督學習-PCA 降維-以乳腺癌診斷數據為例

非監督學習-PCA 降維-以乳腺癌診斷數據為例

面對 30 個維度的數據,人類的視覺已經失靈。本篇透過乳腺癌資料集,展示如何利用 PCA (主成分分析) 進行數據瘦身,將高維度的訊息「壓縮」成 2 維的可視化地圖,並學會讀懂這張地圖背後的變異真相。


ML007 中,我們挖掘了行為之間的關聯。但如果我們面對的是像 ML002 中那種擁有 30 個特徵的乳腺癌資料集,我們該如何「一眼」看穿所有數據的佈局?

這就是 PCA (Principal Component Analysis, 主成分分析) 的主場。它是一把「數據縮小燈」,能幫我們把高維空間的複雜規律,投影到我們看得見的 2D 或 3D 平面上。


一、 資料集來源:Breast Cancer Wisconsin

  • 資料來源:UCI Machine Learning Repository / Scikit-Learn 內建資料集。
  • 備註:這是機器學習領域最經典的二元分類資料集之一,用於透過細胞核特徵預測腫瘤是良性 (Benign) 還是惡性 (Malignant)。

資料集特色與欄位介紹:

這是一個純數值的 二元分類問題 (Binary Classification)。資料集包含 30 個特徵,這些特徵是從乳房腫塊細針抽吸術 (FNA) 的數位影像中計算出來的。

欄位說明:

  • Target (目標 y):診斷結果 (0=Malignant 惡性, 1=Benign 良性)。
  • 特徵 (Features):共 30 個,主要包含 10 個核心特徵的「平均值 (Mean)」、「標準差 (Standard Error)」與「最差值 (Worst)」:
    1. Radius:半徑(從中心到邊界點的平均距離)。
    2. Texture:紋理(灰度值的標準差)。
    3. Perimeter:周長。
    4. Area:面積。
    5. Smoothness:平滑度(局部長度變化的程度)。
    6. Compactness:緊湊度(周長的平方 / 面積 - 1.0)。
    7. Concavity:凹陷度(輪廓凹陷部分的嚴重程度)。
    8. Concave points:凹點數(輪廓凹陷部分的數量)。
    9. Symmetry:對稱性。
    10. Fractal dimension:分形維度。

💡 為什麼要再訪這個資料集? 擁有 30 個特徵意味著數據存在於「30 維空間」。人類無法想像 30 維的樣子,這就是所謂的 「維度災難 (Curse of Dimensionality)」。PCA 的任務就是幫我們從這 30 個方向中,找到最關鍵的兩個「投影視角」。


二、 PCA 的邏輯:旋轉與投影

PCA 絕對不是隨機挑兩個特徵出來畫圖,它是透過數學計算,找出數據中 「最能說故事」 的兩個視角。

PCA 的三步曲診斷:

  1. 標準化 (Standardization)
    • 在乳腺癌數據中,「面積」的數值可能上千,但「平滑度」可能只有 0.1。
    • 如果不先進行標準化,PCA 會誤以為「數值大的特徵就是最重要的」。我們會將所有特徵縮放到相同的比例(平均值 0,標準差 1),確保公平競爭。
  2. 尋找最大變異 (Finding Max Variance)
    • 想像這 30 維數據是一團浮在空中的雲。PCA 會在空間中不斷旋轉這團雲,直到找到一個角度,讓這團雲看起來 「展開得最開」(也就是變異量最大)。這個方向就是 PC1
    • 接著,它會找一個與 PC1 垂直的方向,且具備第二大展開程度的方向,這就是 PC2
  3. 線性組合 (Linear Combination)
    • 最終,PC1 並不是某一個原始特徵,而是 30 個特徵的「混合果汁」。
    • 例如:PC1=(0.3×面積)+(0.2×半徑)+PC1 = (0.3 \times \text{面積}) + (0.2 \times \text{半徑}) + \dots。這就是為什麼我們需要「熱力圖」來拆解這杯果汁裡到底加了什麼。

📷 直觀比喻:拍照的藝術 想像你要拍一張腳踏車的照片。如果你從正面拍,你只能看到一個輪子;如果你從側面拍,你能清楚看到兩個輪子、車架和把手。PCA 的工作就是幫這 30 維的數據雲,找到那張 「最能看清全貌的側面照」


三、 PCA 診斷報告:看穿數據的靈魂

透過 Day 62 的實驗,我們得到了以下三張診斷圖:

1. 碎石圖 (Scree Plot):我們損失了多少資訊?

這張圖告訴我們每個主成分攜帶的資訊比例。

Scree Plot

圖 A:主成分解釋變異量診斷

  • 如何讀懂這張圖?
    • 藍色長條:代表單一主成分的貢獻。PC1 佔了約 44%,PC2 佔了約 19%。
    • 紅色階梯線:代表「累積」資訊量。你可以看到在 Index = 2 的位置,紅線剛好越過了 0.6 (60%) 的水平線,精確數值為 63.2%
  • 診斷結論:這意味著我們只需用 PC1 與 PC2 兩個維度,就能保留原始 30 個特徵中超過六成的訊息量。

2. PCA 2D 投影圖:跨越維度的分類

這是最震撼的一張圖。我們只用了 PC1 與 PC2 兩個軸,就將 30 維的數據畫在了二維平面上。

  • 觀察:藍色 (良性) 與 紅色 (惡性) 的點群在空間中出現了明顯的分界。
  • 結論:這證明了即便大幅度降維,PCA 依然成功捕捉到了區分腫瘤性質的核心特徵。
PCA Projection

圖 B:30 維數據投影至 2 維空間的視覺化

3. 主成分熱力圖 (Loading Heatmap)

這張圖解答了「主成分到底是什麼?」。

  • 觀察:我們可以看到哪些原始特徵(如 mean concave points)在 PC1 中佔比很高。這讓我們知道,壓縮後的新維度其實是舊維度的「加權組合」。
PCA Heatmap

圖 C:主成分與原始特徵的相關性分析

  • 解讀指南:深紅色代表該特徵對主成分有強大的「正向貢獻」,深藍色則代表「負向影響」。
  • 特徵提煉 (Feature Essence)
    • PC1 (體積指標):我們觀察到 mean radiusmean perimetermean area 呈現一致的深紅色。這代表 PC1 實際上提煉了腫瘤的 「尺寸大小」 資訊。
    • PC2 (形狀指標):在 mean fractal dimension (分形維度) 權重較高,這代表 PC2 捕捉的是細胞邊緣的 「複雜程度」
  • 價值:這證明了 PCA 並非單純的資料壓縮,而是將 30 個雜亂的變數,重新定義為「大小」與「形狀」這類具備醫學解釋力的核心指標。

四、 總結:化繁為簡的藝術

  1. 解決維度災難:PCA 能有效減少運算量,並去除數據中的雜訊。
  2. 視覺化利器:如果沒辦法畫圖,就沒辦法診斷。PCA 是高維數據視覺化的首選工具。
  3. 預處理的首選:在進行 K-Means 分群或訓練複雜模型前,先用 PCA 「瘦身」,往往能得到更穩健的結果。

下一站,我們將運用矩陣分解的相同邏輯,進入串流媒體的神經中樞。從 PCA 的數學基礎跨越到「推薦系統實戰」,看看 Netflix 究竟是如何算出你今晚想看哪部電影的!