All Revision Notes

COM6004 Data Mining · Chapter 7

Dimensionality Reduction: PCA, SVD & Factor Analysis(非考試範圍)

COM6004 · Chapter 7 · Source: COM6004_Chapter_7_Dimensionality_Reduction.pptx (21 slides) · Tan, Steinbach, Karpatne, Kumar, Introduction to Data Mining 2nd ed.

Contents · 12 sections
🚫 非 COM6004 考試範圍

COM6004 考試範圍只包括 Chapter 1–6,所以呢頁冇 Exam 標記,亦冇 Exam-only 按鈕。如果要準備考試,請先溫 Chapter 1 至 Chapter 6。呢章需要用到嘅 eigenvalue、eigenvector 同 orthogonal 等概念,可以喺 Matrix Algebra Review 溫返。

🎯 本講內容

  • PCA:principal components 嘅定義同 problem formulation,點樣由 covariance matrix SS 嘅 eigen-decomposition 得出 PCs,PCs 有咩重要性質,同埋應該保留幾多個 PCs(例如 90% variability、scree plot elbow),幾時改用 correlation matrix RR。
  • SVD:D=UΣVTD = U\Sigma V^T、right / left singular vectors、點樣用 DSVD=D [v1,…,vk]D_{SVD} = D\,[v_1,\dots,v_k] 降維,同 PCA 嘅關係,同埋 sparse document-term matrix 嘅應用。
  • Factor Analysis:latent factors、common factors、specific factors、factor loading λij\lambda_{ij},同埋 decathlon 例子(speed 同 strength)。

🧭 三種方法嘅分別

PCASVDFactor Analysis
新 attributes 係咩Original attributes 嘅 linear combinationsOriginal attributes 嘅 linear combinations反過嚟:original variables 係 latent factors 嘅 linear combinations
分解嘅對象Covariance matrix SS(或 correlation matrix RR)Data matrix DD 本身Standardized variables zz
使唔使先減 mean要(centering)唔一定,適合 sparse data要 Z-score standardize
新 data matrixn×kn \times kn×kn \times kFF:n×kn \times k

1. 點解要做 Dimensionality Reduction(Slide 2–3)

Chapter 2 講 data preprocessing 時已經提過 curse of dimensionality:attributes 越多,data 喺 space 入面就越 sparse,distance 同 density 嘅意義會變弱,計算量亦都會增加。呢章介紹三種方法,用少量新 attributes 代替原本好多個 attributes:

  • Principal Components Analysis (PCA)
  • Singular Value Decomposition (SVD)
  • Factor Analysis (FA)

2. PCA 嘅目標同 Problem Formulation(Slide 3–4)

Slide 嘅定義:

The goal of PCA is to find a new set of attributes [called principal components (PCs), which are linear combinations of the original attributes] that better captures the variability of the data.

PCA 有三個好處(Appealing characteristics):

  1. 佢傾向搵出 data 入面最強嘅 patterns(strongest patterns)。
  2. 好多時,一小部分(small fraction)新 attributes 已經可以捕捉到 data 大部分 variability。
  3. 假設 noise 比 patterns 弱,捨棄最後嗰幾個 PCs 就可以去走大部分 noise(eliminate much of the noise)。

Problem formulation(Slide 4):

  • 任何兩個唔同嘅 PCs 之間 covariance 都係 0。
  • 第一個 PC 要盡量捕捉最多 variability。
  • 第二個 PC 要同第一個 PC orthogonal,喺呢個 constraint 之下再捕捉最多剩餘嘅 variability。
  • 第 kk 個 PC 要同之前 k−1k-1 個 PCs orthogonal,喺呢個 constraint 之下再捕捉最多剩餘嘅 variability。
💡 直覺

可以想像一團橢圓形嘅點雲。PC1 就係橢圓最長嗰條軸,即係 data 散得最開嘅方向。PC2 同 PC1 成 90°,喺垂直方向入面搵最長嘅一條軸。PCA 其實只係將座標軸旋轉,令新座標軸對準 data 最分散嘅方向。旋轉之後,最後幾條軸方向上 data 好少變化,所以可以捨棄佢哋。

3. Mathematical Details:Eigen-decomposition of SS(Slide 5–6)

Data matrix DD 係一個 n×pn \times p matrix,nn 係 observations 數目,pp 係 attributes 數目。Slide 嘅原句係:

PCA is ALL about eigen-decomposition of the sample covariance matrix SS of the data.

如果 DD 已經 preprocess 過,令每個 attribute 嘅 mean 都係 0(centering),咁:

S=1n−1DTD(a p×p matrix)S = \frac{1}{n-1} D^T D \qquad (\text{a } p \times p \text{ matrix})

跟住對 SS 做 eigen-decomposition(Slide 6):

  • SS 嘅 eigenvalues 係 λ1,λ2,…,λp\lambda_1, \lambda_2, \dots, \lambda_p,由大至細排列:λ1≥λ2≥⋯≥λp\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_p。
  • 對應嘅 eigenvectors 係 v1,v2,…,vpv_1, v_2, \dots, v_p。(λi,vi)(\lambda_i, v_i) 叫做第 ii 個 eigenpair。
  • 第一個 PC 係 Dv1D v_1,第二個 PC 係 Dv2D v_2,如此類推。
PCi=Dvi(n×1)全部 PCs:  DV=D [v1,…,vp]\text{PC}_i = D v_i \quad (n \times 1) \qquad\qquad \text{全部 PCs:} \; D V = D\,[v_1, \dots, v_p]

每個 eigenvector viv_i 係一個 p×1p \times 1 嘅 weight vector。佢話你知原有 pp 個 attributes 每個佔幾多比重,所以 DviD v_i 就係「原有 attributes 嘅 linear combination」,符合 Slide 3 嘅定義。

🖼️ 圖片內容

Slide 5 有一張圖,但冇 text 抽到出嚟,所以呢度冇解釋圖入面嘅內容。上面嘅公式係由 slide 嘅 equation object 抽出嚟。

⚠️ 易錯位
  • S=1n−1DTDS = \frac{1}{n-1}D^TD 只喺 centered data 先成立。未減 mean 嘅話,DTDD^TD 就唔係 covariance matrix。
  • SS 嘅 size 係 p×pp \times p(attributes × attributes),唔係 n×nn \times n。
  • Eigenvalues 一定要由大至細排好先對應 PC1、PC2……。好多 library(例如 numpy.linalg.eigh)係由細至大輸出。

4. PC 嘅重要性質(Slide 7)

  1. 任何兩個唔同嘅 PCs,covariance 都係 0(uncorrelated)。
  2. 第 ii 個 PC 嘅 variance 等於 λi\lambda_i。
  3. 原有 attributes 嘅 variance 總和等於 ∑λi\sum \lambda_i,亦等於全部 PCs 嘅 variance 總和。所以 data 嘅 total variability 冇損失。
  4. 最大 eigenvalue 對應嘅 eigenvector 指向 data variance 最大嘅方向(variance =λ1= \lambda_1)。第二大 eigenvalue 對應嘅 eigenvector 同第一個 orthogonal,指向剩餘 variance 最大嘅方向(variance =λ2= \lambda_2),如此類推。
∑j=1pVar(attributej)=tr(S)=∑i=1pλi=∑i=1pVar(PCi)\sum_{j=1}^{p} \mathrm{Var}(\text{attribute}_j) = \mathrm{tr}(S) = \sum_{i=1}^{p} \lambda_i = \sum_{i=1}^{p} \mathrm{Var}(\text{PC}_i)

Worked example(自製,用嚟理解)

以下係一個已經 centered 嘅細 dataset,n=4n = 4,p=2p = 2:

D=(2112−1−2−2−1),DTD=(108810),S=13(108810)D = \begin{pmatrix} 2 & 1 \\ 1 & 2 \\ -1 & -2 \\ -2 & -1 \end{pmatrix}, \qquad D^TD = \begin{pmatrix} 10 & 8 \\ 8 & 10 \end{pmatrix}, \qquad S = \frac{1}{3}\begin{pmatrix} 10 & 8 \\ 8 & 10 \end{pmatrix}

兩個 column 嘅 sum 都係 0,所以確實係 centered。Eigenvalues 由 ∣S−λI∣=0|S - \lambda I| = 0 求:(103−λ)2=(83)2(\tfrac{10}{3}-\lambda)^2 = (\tfrac{8}{3})^2,所以 λ1=6\lambda_1 = 6,λ2=23\lambda_2 = \tfrac{2}{3}。

對應嘅 unit eigenvectors 係 v1=12(1,1)Tv_1 = \tfrac{1}{\sqrt2}(1, 1)^T 同 v2=12(−1,1)Tv_2 = \tfrac{1}{\sqrt2}(-1, 1)^T。

  • PC1 =Dv1=12(3,3,−3,−3)T= Dv_1 = \tfrac{1}{\sqrt2}(3, 3, -3, -3)^T,佢嘅 variance 係 13⋅4⋅92=6=λ1\tfrac{1}{3}\cdot 4 \cdot \tfrac{9}{2} = 6 = \lambda_1 ✔
  • Total variance =103+103=203=6+23= \tfrac{10}{3} + \tfrac{10}{3} = \tfrac{20}{3} = 6 + \tfrac{2}{3} ✔,total variability 冇損失。
  • PC1 解釋嘅比例 =620/3=90%= \dfrac{6}{20/3} = 90\%。如果準則係「保留 90% variability」,用 1 個 PC 就夠,即係由 2D 降到 1D。

5. 2D 例子(Slide 8)

Slide 用 1000 個 two-dimensional data points,展示 PCA transformation 之前同之後嘅樣。

🖼️ 圖片內容

Slide 8 嘅 before / after 散點圖係圖片,冇抽到 text,所以呢度唔估圖入面畫咗啲咩。一般嚟講,PCA 之後嘅座標軸就係 PC1 同 PC2,可以參考第 2 節嘅「直覺」同第 4 節嘅 worked example。

6. 揀幾多個 PCs?Covariance 定 Correlation?(Slide 9)

原本有 pp 個 attributes,PCA 就可以產生 pp 個 PCs。做 data mining 時,通常只用頭幾個 PCs。至於要用幾多個,Slide 嘅答案係:It depends on your application. 一般有兩種方法:

  1. Cumulative proportion of variance:保留足夠嘅 PCs,令佢哋捕捉到大部分 variability(例如 90%):
    揀最細嘅 k,令 λ1+⋯+λkλ1+⋯+λp≥0.9\text{揀最細嘅 } k \text{,令 } \frac{\lambda_1 + \dots + \lambda_k}{\lambda_1 + \dots + \lambda_p} \ge 0.9
  2. Scree plot:x 軸係 PC 編號,y 軸係 λi\lambda_i(或者 proportion of variance),然後揀曲線出現 elbow(由急跌轉為平)嘅位置。Slide 註明詳情見 Tutorial 8。

例如 λ=(4.0,2.5,0.8,0.4,0.3)\lambda = (4.0, 2.5, 0.8, 0.4, 0.3),total 係 8.0。Cumulative proportion 依次係 50%、81.25%、91.25%、96.25%、100%,所以用 90% 準則就揀 k=3k = 3。Scree plot 喺 λ3\lambda_3 之後變平,elbow 大約喺第 3 個 PC,兩種方法嘅答案一致。

Correlation matrix RR:如果 attributes 嘅 scale 同 variance 相差好遠,有時會用 RR 代替 SS 做 PCA。原因係 PCA 追求最大 variance,如果唔處理,scale 最大嗰個 attribute(例如以「元」計嘅收入,對比以「年」計嘅年齡)會霸佔 PC1。用 RR 做 PCA,等同先將每個 attribute 做 Z-score standardize,再用 SS 做 PCA。

# 參考用 scikit-learn 示範(唔係 lecture code)
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

Z = StandardScaler().fit_transform(X)      # 先 standardize,即係用 R 做 PCA
pca = PCA(n_components=0.90)               # 保留 90% variability
X_new = pca.fit_transform(Z)               # n × k
print(pca.explained_variance_)             # λ_1, λ_2, …
print(pca.explained_variance_ratio_.cumsum())
print(pca.components_)                     # 每一行係一個 eigenvector v_i

7. Singular Value Decomposition(Slide 10–12)

Slide 10 指出,只要每個 variable 嘅 mean 已經減咗,PCA 就同對 data matrix 做 SVD 係等價嘅。不過,從 SVD 角度理解 dimensionality reduction 都好有用,因為有時唔適合減 mean,特別係 data 比較 sparse 嘅時候。

SVD 直接分解 n×pn \times p 嘅 data matrix DD(Slide 11):

D=∑i=1rank(D)σi ui viT=UΣVT,σ1≥σ2≥⋯≥σrank(D)D = \sum_{i=1}^{\mathrm{rank}(D)} \sigma_i\, u_i\, v_i^T = U \Sigma V^T, \qquad \sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_{\mathrm{rank}(D)}
  • σi\sigma_i:singular values,由大至細排列,放喺 diagonal matrix Σ\Sigma。
  • VV 嘅 columns v1,…,vpv_1, \dots, v_p 叫 right singular vectors。
  • UU 嘅 columns 叫 left singular vectors。

要得到一個只有 kk 個 attributes 嘅新 data matrix(Slide 12),就用頭 kk 個 right singular vectors:

DSVD=D×[v1,v2,…,vk](n×k)D_{SVD} = D \times [v_1, v_2, \dots, v_k] \qquad (n \times k)

每一項 σiuiviT\sigma_i u_i v_i^T 都係一個 rank-1 matrix。DD 係呢啲「層」疊加出嚟嘅結果,而 σi\sigma_i 越大,嗰一層越重要。只保留頭 kk 層,就係保留最主要嘅結構。

💡 SVD 同 PCA 點樣連埋一齊

如果 DD 已經 centered:DTD=VΣUTUΣVT=VΣ2VTD^TD = V\Sigma U^T U \Sigma V^T = V \Sigma^2 V^T。所以:

  • Right singular vectors viv_i 就係 SS 嘅 eigenvectors,即係 PCA 嘅方向。
  • λi=σi2n−1\lambda_i = \dfrac{\sigma_i^2}{n-1}。
  • DSVD=D[v1,…,vk]D_{SVD} = D[v_1, \dots, v_k] 正正就係頭 kk 個 PCs。

用返第 4 節嘅例子:σ1=3×6=32\sigma_1 = \sqrt{3 \times 6} = 3\sqrt2,σ2=3×23=2\sigma_2 = \sqrt{3 \times \tfrac23} = \sqrt2。

🖼️ 圖片內容

Slide 11 有一張圖(可能係 UU、Σ\Sigma、VTV^T 嘅 dimension 示意圖),冇抽到 text,所以呢度唔估圖入面嘅內容。

8. SVD 嘅應用:Document Data(Slide 13)

  • Document data 一般都係 sparse 嘅。
  • Data matrix 係 document-term matrix:每一行係一份 document,每一列係一個 term(word)。
  • 對 document-term matrix 做 SVD,可以睇到某類 documents 嘅「common terms」。

點解唔先減 mean?因為減 mean 之後,原本大量嘅 0 會變成非 0,matrix 就唔再 sparse,儲存同計算成本都會大增。所以 sparse data 會直接做 SVD,呢個亦係 Slide 10 講嘅原因。呢個方法喺 text mining 叫做 Latent Semantic Analysis (LSA),scikit-learn 嘅實作係 TruncatedSVD。

🖼️ 圖片內容

Slide 13 有一張 document-term matrix 或者 SVD 結果嘅圖,冇抽到 text,所以呢度唔估圖入面有咩 terms 或者 categories。

9. Factor Analysis:概念同 Motivation(Slide 14–17)

同 PCA 嘅根本分別(Slide 14):

  • PCA / SVD:新 attributes 係原有 variables 嘅 linear combinations,即係 新 = f(舊)。
  • FA:將原有 variables 表示成少量 hidden / latent attributes 嘅 linear combinations,即係 舊 = f(隱藏因素)。

Motivation 1(Slide 15):有啲 data objects 嘅特徵好難直接量度(hard to measure directly),但似乎同一啲可以量度嘅特徵有關,例如:

  • Intelligence 同各類 IQ tests 嘅表現。
  • 運動員喺唔同項目嘅表現,同佢嘅 speed 同 strength。

如果可以搵到少量 attributes 去歸納原有 attributes,就可以同時做到 dimensionality reduction,又可以加深對 data 嘅理解。

Motivation 2(Slide 16):亦可以從 covariance 或 correlation matrix 嘅角度理解。假設有一組 attributes 同其他 attributes 嘅 correlation 唔高,但組內嘅 attributes 之間 correlation 好強,可能係因為佢哋量度緊同一個 underlying quantity(latent variable)。咁樣就應該搵一個 underlying attribute 去總結每一組。

Decathlon 例子(Slide 17):Decathlon(十項全能)有 10 個項目。著重 speed 嘅項目(100m、200m、400m……)之間,運動員嘅表現差唔多;著重 strength 嘅項目亦一樣。所以可以假設,運動員喺任何一個項目嘅表現,都係由項目本身嘅性質,加上 speed 同 strength 兩個 underlying factors 決定。Factor Analysis 就係要搵出呢種關係。

💡 直覺

假設 10 個項目嘅 correlation matrix 大致分成兩大塊:跑步類項目之間 correlation 高,投擲類項目之間 correlation 高,但兩類之間 correlation 低。FA 就係將 10 個 observable variables 濃縮成 2 個 latent factors,而且每個 factor 都有清楚嘅意思(speed、strength)。呢種 interpretability 係 FA 嘅主要賣點。

🖼️ 圖片內容

Slide 14 有一張圖,冇抽到 text,所以呢度唔估圖入面嘅內容。

10. Factor Analysis 嘅 Mathematical Formulation(Slide 18–20)

設 z=(z1,z2,…,zp)z = (z_1, z_2, \dots, z_p) 係 pp 個 standardized(Z-score normalized)observable variables:

zi=xi−μiσi,E(zi)=0,Var(zi)=1z_i = \frac{x_i - \mu_i}{\sigma_i}, \qquad E(z_i) = 0, \quad \mathrm{Var}(z_i) = 1

設 f1,f2,…,fkf_1, f_2, \dots, f_k 係 kk 個 latent / hidden factors。佢哋就係新 attributes,每個 object 都有自己嘅值。Slide 18 嘅 kk-factor analysis model 係以圖片顯示。根據 Slide 19 嘅符號(λij\lambda_{ij}、ϵi\epsilon_i)同教科書,model 嘅形式係:

zi=λi1f1+λi2f2+⋯+λikfk+ϵi,i=1,…,p⟺z=Λf+ϵz_i = \lambda_{i1} f_1 + \lambda_{i2} f_2 + \dots + \lambda_{ik} f_k + \epsilon_i, \quad i = 1, \dots, p \qquad\Longleftrightarrow\qquad z = \Lambda f + \epsilon
🖼️ 圖片內容

Slide 18 嘅 model 公式係圖片,冇抽到 text。上面係按 Slide 19 嘅符號同 Tan et al. 教科書寫出嚟嘅標準形式,請對照 slide 原圖確認符號。注意 μ\mu 喺 slide 寫成 μ\mu(冇下標),呢度寫成 μi\mu_i,意思係每個 variable 有自己嘅 mean。

名詞解釋(Slide 19):

名詞意思
Common factors fjf_j每個原有 attribute 嘅值都由全部 latent factors 共同決定,所以叫 common factors。
Factor loading λij\lambda_{ij}第 jj 個 factor 對第 ii 個 attribute 嘅重要性。
Specific / unique factor ϵi\epsilon_iError term,代表第 ii 個 attribute 入面 common factors 解釋唔到嘅部分。

Slide 20:FA 會 estimate factor loadings,然後就可以 estimate 每個 observation 喺 latent factors 上嘅值。如果原本 data matrix DD 係 n×pn \times p,新 data matrix FF 就係 n×kn \times k。

⚠️ 易混淆:λ\lambda 喺 PCA 同 FA 意思唔同

PCA 入面嘅 λi\lambda_i 係 covariance matrix 嘅 eigenvalue(PC 嘅 variance)。FA 入面嘅 λij\lambda_{ij} 係 factor loading(有兩個下標)。兩者符號一樣,但意思完全唔同。

Decathlon 例子:z100m≈0.9fspeed+0.1fstrength+ϵz_{100m} \approx 0.9 f_{speed} + 0.1 f_{strength} + \epsilon,zshot put≈0.1fspeed+0.85fstrength+ϵz_{shot\,put} \approx 0.1 f_{speed} + 0.85 f_{strength} + \epsilon。睇 loadings 就知道每個 factor 代表咩意思(呢啲數字只係示意,唔係 slide 數據)。

自我測驗 Self-test

Q1. 用一句說話講 PCA 嘅目標,同埋列出佢三個 appealing characteristics。

搵一組新 attributes(principal components),佢哋係原有 attributes 嘅 linear combinations,而且更能捕捉 data 嘅 variability。三個 characteristics:(1) 傾向搵出 strongest patterns;(2) 一小部分新 attributes 已經可以捕捉大部分 variability;(3) 因為 noise 比 patterns 弱,可以去走大部分 noise。

Q2. 第二個 PC 要滿足咩條件?

同第一個 PC orthogonal(covariance 係 0),喺呢個 constraint 之下捕捉最多剩餘 variability。

Q3. Centered data 嘅 DD 係 100×5100 \times 5。SS 嘅 size 係幾多?公式係咩?可以產生幾多個 PCs?

S=199DTDS = \frac{1}{99} D^TD,size 係 5×55 \times 5。可以產生 p=5p = 5 個 PCs。

Q4. SS 嘅 eigenvalues 係 5,3,1.5,0.55, 3, 1.5, 0.5。Total variance 係幾多?PC2 嘅 variance 係幾多?要保留 90% variability 需要幾多個 PCs?

Total variance =5+3+1.5+0.5=10= 5 + 3 + 1.5 + 0.5 = 10。PC2 嘅 variance =λ2=3= \lambda_2 = 3。Cumulative proportion 依次係 50%、80%、95%,所以需要 k=3k = 3。

Q5. 幾時應該用 correlation matrix RR 代替 SS 做 PCA?點解?

當 attributes 嘅 scale 同 variance 相差好遠時。PCA 追求最大 variance,scale 大嘅 attribute 會霸佔頭幾個 PCs。用 RR 等同先將每個 attribute standardize,令每個 attribute 都有平等地位。

Q6. D=UΣVTD = U\Sigma V^T 入面,邊啲係 right singular vectors?點樣得到 kk 維嘅新 data?

VV 嘅 columns v1,…,vpv_1, \dots, v_p 係 right singular vectors,UU 嘅 columns 係 left singular vectors。新 data 係 DSVD=D[v1,…,vk]D_{SVD} = D[v_1, \dots, v_k],size 係 n×kn \times k。

Q7. PCA 同 SVD 幾時等價?點解 document-term matrix 偏向直接用 SVD?

當每個 variable 嘅 mean 已經減咗,兩者就等價(viv_i 相同,λi=σi2/(n−1)\lambda_i = \sigma_i^2/(n-1))。Document-term matrix 好 sparse,減 mean 之後大量 0 會變成非 0,破壞 sparsity,所以直接對 DD 做 SVD 會比較好。

Q8. PCA 同 Factor Analysis 喺「linear combination」方向上有咩分別?

PCA / SVD:新 attributes 係原有 variables 嘅 linear combinations。FA:原有 variables 表示成少量 latent factors 嘅 linear combinations(z=Λf+ϵz = \Lambda f + \epsilon),方向啱啱相反。

Q9. 喺 FA model 入面,λij\lambda_{ij}、fjf_j 同 ϵi\epsilon_i 分別叫咩,代表咩?

λij\lambda_{ij}:factor loading,第 jj 個 factor 對第 ii 個 attribute 嘅重要性。fjf_j:common factor,即係 latent attribute。ϵi\epsilon_i:specific / unique factor,代表第 ii 個 attribute 入面 common factors 解釋唔到嘅部分。

Q10. 用 decathlon 解釋 FA 嘅 motivation。

10 個項目嘅表現睇得到,但 speed 同 strength 睇唔到。著重 speed 嘅項目之間表現相近,著重 strength 嘅項目亦一樣。所以可以假設每個項目嘅表現由項目性質加兩個 latent factors(speed、strength)決定。FA 可以將 10 個 variables 減到 2 個 factors,同時令人更了解 data。

一頁總結 Cheat sheet

📋 速查(非 COM6004 考試範圍)
  • PCA:PCs 係原有 attributes 嘅 linear combinations。PC1 捕捉最多 variance;PCkk 同之前 k−1k-1 個 PCs orthogonal,再捕捉最多剩餘 variance。
  • Centered DD(n×pn \times p):S=1n−1DTDS = \frac{1}{n-1}D^TD(p×pp \times p)。Eigenpairs (λi,vi)(\lambda_i, v_i),λ1≥⋯≥λp\lambda_1 \ge \dots \ge \lambda_p;PCi=Dvi\text{PC}_i = Dv_i。
  • 性質:PCs 兩兩 uncorrelated;Var(PCi)=λi\mathrm{Var}(\text{PC}_i) = \lambda_i;∑Var(attributes)=∑λi\sum \mathrm{Var}(\text{attributes}) = \sum \lambda_i,total variability 冇損失。
  • 揀 kk:cumulative ∑i≤kλi/∑λi≥90%\sum_{i \le k}\lambda_i / \sum \lambda_i \ge 90\%,或者 scree plot 嘅 elbow。Scale 差好遠就用 correlation matrix RR。
  • SVD:D=∑σiuiviT=UΣVTD = \sum \sigma_i u_i v_i^T = U\Sigma V^T,σ1≥σ2≥…\sigma_1 \ge \sigma_2 \ge \dots。VV 係 right singular vectors,UU 係 left singular vectors。DSVD=D[v1,…,vk]D_{SVD} = D[v_1, \dots, v_k]。
  • Centered 嘅話,PCA 同 SVD 等價,λi=σi2/(n−1)\lambda_i = \sigma_i^2/(n-1)。Sparse data(document-term matrix)唔減 mean,直接做 SVD。
  • FA:原有 standardized variables 係少量 latent factors 嘅 linear combinations:zi=∑jλijfj+ϵiz_i = \sum_j \lambda_{ij} f_j + \epsilon_i。fjf_j 係 common factors,λij\lambda_{ij} 係 factor loading,ϵi\epsilon_i 係 specific factor。DD(n×pn \times p)會變成 FF(n×kn \times k)。
  • FA 例子:IQ tests 同 intelligence;decathlon 同 speed、strength。