JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

主成分分析與降維

[[la-principal-component-analysis|PCA]] 尋找資料變化最大的那些方向——即中心化資料的前幾個[[singular-value-decomposition|SVD]] 方向。只保留少數幾個,你就能壓縮並視覺化高維資料。我們也會誠實交代其中的陷阱:變異大並不等於重要,而且 PCA 只看得見線性結構。

想法:轉到變異最大的那些軸上

想像一團資料點的雲。它在某些方向上比別的方向更寬。主成分分析先找出散布最大的方向(第一主成分),再找與之垂直的次大方向,如此繼續。它無非就是選一套更好的座標軸——一個與資料形狀對齊的旋轉。

從計算上看,PCA 就是把資料中心化(減去每個特徵的均值)之後做SVD。主成分就是最靠前的右奇異向量;奇異值告訴你每個主成分捕獲了多少變異。

  1. 中心化資料:減去每個特徵的均值,讓點雲落在原點。
  2. 對中心化後的資料矩陣做 SVD,A = U*S*V^T。
  3. V 的各行就是主成分;sigma_i^2 是沿各主成分的變異。
  4. 把資料投影到前 k 個主成分上,將其降到 k 維。

壓縮與視覺化

只保留前幾個主成分,就是把資料投影到對變異最要緊的那些方向上。一個一千維特徵的資料集,常常只用少數幾個主成分就抓住了形狀,於是你能把它畫成二維圖,或餵給一個更小更快的模型。這與低秩逼近是同一招:扔掉小奇異值,留下大的。

variance kept = (sigma_1^2 + ... + sigma_k^2) / (sigma_1^2 + ... + sigma_r^2)
# pick the smallest k that keeps, say, 95% of the variance
解釋變異比例可以指導該保留多少個主成分。

誠實的提醒