資料降維 — PCA

Chang_Zai_Wang
數據領航員
Published in
5 min readSep 24, 2022

目錄

PCA?
降維?
什麼時候用?
怎麼運作?

PCA?

PCA (Principal Component Analysis) 主成分分析,雖然已經發明超過百年的時間,但是如今在 AI 和統計學領域仍被廣泛的用來降低數據的維度(特徵),是一種非監督式線性降維方法

降維?

降維顧名思義就是降低原始數據中維度(特徵),而又盡量不影響數據原始的描述。降維的方法有很多種,大致上可以分為兩類,其一為線性方法,另一為非線性方法。主要的目的都是為了加速模型的運算效率、避免過擬合。PCA 降維則屬線性方法。至於監督式與非監督式的差別在於有沒有考慮資料的類別,LDA 則屬於監督式的線性降維方法,有興趣的人可以參考這篇:資料降維 — LDA 線性區別分析

什麼時候用?

  • 當數據的維度(特徵)很高時,可以使用 PCA 降維。
  • 當數據的維度(特徵)有多重共線性時,尤其適合使用 PCA 降維,PCA 降維後會去關聯
  • 可用於影像降噪 (denoising) 和影像壓縮 (compression)

怎麼運作?

如果要用幾個字說明 PCA 是怎麼運作的,很簡單那就是 “投影和轉軸”,但我相信這樣說完你們一定毫無頭緒,接下來就要來解釋到底要對誰投影、樣怎麼轉軸。

假設你好不容易蒐集到了一些可以使用的資料,但是這些資料的維度太大不利於直接分析,於是想使用 PCA 降維技術來幫助我們。先抓出其中的兩個維度來畫圖,呈現出下圖的資料樣貌。

接下來我們稍微移動一下資料,將資料的中心點移至 (0,0) 的位置。其實這個動作可以想像成對資料做標準化,讓平均為0,標準差為1。

找到一條通過原點的線,使所有點到線上的距離平方和為最小,我們稱該線為 PC1 ,PC2 則會是一條與 PC1 正交的線,如果有 PC3 則是與 PC1, PC2 皆正交的第三條線。這時你可能會好奇,究竟會有幾條 PC 呢?PC 線的數量 ≤ 特徵數 or 樣本。

其實 PCA 真正計算 PC 線時要保留的並不是算點到線上的最小距離平方和,而是計算點投影到線上後到原點的最大距離平方和,這個值其實指的就是 Eigenvalue 。說起來有點文謅謅,我們可以用畢式定理來推倒這兩者間的關係。

最後我們將 PC1, PC2 當作新的 X, Y 軸進行轉軸,從原始的數據可以發現 x1, x2 是有正相關的,而轉軸的目的其實就是在去關聯

最後,既然是要用 PCA 來降維,那到底要降成幾維呢?這個問題就要來看每個 PC 解釋了多少資料的離散程度,也就是變異量 Variance。Variance 是用前面有提到的 Eigenvalue/n-1 計算而來。算出每個 PC 解釋的比例(解釋力),比例越高代表 PC 越有效(通常 Variance 解釋比例會逐漸下降)。我們可以找出想要的 PC 數量,比如總共有 5 個 PC,但 PC1 + PC2 已達 95% 的解釋力,那選擇 2 個 PC 就可以很好的表達資料並不需要再增加,藉此來達到降維的效果。

上述的內容是以幾何的方式來說明,沒有涉及到過深的統計學和線代觀念,若大家真的很有興趣想更深入地了解的話,不仿去看看 3Blue1Brown: Essence of linear algebra 這個系列影片,以及 Lee Meng 的文章

教育部補助大專院校STEM領域及女性研發人才培育計畫目標為建構一個「以智慧物聯技術與實務應用為基礎的教育環境和實作場域」,並規劃出符合此STEM教育領域的創新特色課程,以畢業前進入企業實習的方式,讓學生了解相關產業界所面對的問題,再輔以業界實作場域的教育訓練活動,共同帶領學生發展出動手做、判斷與解決問題的相關技能;本計畫也規劃讓學生以專題實作的組隊方式,跟業界協力領導學生對外參與智慧物聯技術的應用競賽,不僅可以累積學生實務開發的能力,更能激發其潛能來幫助企業解決所面臨的難題。

Data Science Meetup 台灣資料科學社群的使命是「為資料科學人士與企業創建經濟機會」。我們相信大數據蘊藏著巨量的信息和價值,如何處理好大數據並發掘其潛藏的商業價值,就要靠資料科學有效的應用。21世紀是資料科學決勝時代,我們社群將為大家提供與資料科學相關的最新技術和資訊實戰攻略,並透過全球業界人士和學者幫助相關職業規劃與挑戰,社群活動包含

  • 台北實體版聚
  • 線上版聚
  • Mentorship Program

歡迎加入我們社團瞭解更多資訊:https://www.facebook.com/groups/datasciencemeetup/

--

--

Chang_Zai_Wang
數據領航員

東吳大學資料科學系|Machine Learning & Deep Learning|喜歡瞭解科技相關的資訊,在學習的路上持續前進~|📩️ Email : xs950179@gmail.com