PCA via eigendecomposition and SVD
2.5.9· AI-ML › Unsupervised Learning
PCA Kyun Zaroori Hai
Problem: Real data high dimensions mein rehta hai (hazaron features), lekin zyada variation ek lower-dimensional subspace mein hoti hai. Hum chahte hain:
- Compress karna data ko (kam dimensions → kam storage, faster computation)
- Visualize karna high-D data ko 2D/3D mein
- Denoise karna — signal rakhke, noise dimensions hatake
- Decorrelate karna features ko downstream algorithms ke liye
Solution: Orthogonal directions (principal components) dhundho jo kitna variance capture karte hain usi order mein arrange hon.
Method 1: Covariance Matrix ka Eigendecomposition
Step 1: Data ko Center Karo
Data matrix se shuru karo (n samples, d features).
jahaan mean vector hai.
KYUN? PCA variance ki directions dhundta hai. Variance mean se measure hoti hai, isliye pehle center karna zaroori hai. Center kiye bina, pehla PC sirf origin se data cloud ke center ki taraf point karega — jo kisi kaam ka nahi.
Step 2: Covariance Matrix Compute Karo
se divide kyun karte hain? Bessel's correction — unbiased variance estimation ke liye (1 degree of freedom mean ke liye lost hoti hai).
Step 3: Eigendecomposition
Eigenvalue problem solve karo:
Isse eigenvectors aur eigenvalues milte hain.
Eigenvalues = variance kyun? Socho centered data ko unit vector par project karna:
Hum isko maximize karna chahte hain subject to. Lagrange multipliers use karke:
ke w.r.t. derivative leke zero set karo:
Toh ek eigenvector hona chahiye! Wapas substitute karne par: . Eigenvalue hi us direction ki variance hai.
Step 4: Data Project Karo
dimensions mein reduce karne ke liye, top eigenvectors par project karo:
jahaan .
Result: low-dimensional representation hai.
Method 2: Singular Value Decomposition (SVD)
Koi bhi matrix aise decompose ho sakti hai:
jahaan:
- orthogonal hai (left singular vectors)
- diagonal hai singular values ke saath
- orthogonal hai (right singular vectors)
Eigendecomposition se Connection
Covariance matrix se shuru karo:
substitute karo:
Kyunki :
Yeh ka eigendecomposition hai! Eigenvectors ke columns hain, aur:
Singular values squared ( se divide karke) eigenvalues dete hain.
SVD kyun use karein?
- Numerical stability: Covariance matrix ill-conditioned ho sakti hai; SVD usse form karne se bachata hai
- Efficiency: Jab (zyada features, kam samples), SVD faster hai
- Direct interpretation: sample projections deta hai, feature loadings deta hai
SVD-Based PCA Algorithm
1. Center the data: X_centered = X - mean(X, axis=0)
2. Compute SVD: U, Σ, V^T = SVD(X_centered)
3. Principal components: V (columns are PCs)
4. Eigenvalues: λ_i = σ_i² / (n-1)
5. Project to k dimensions: Z = X_centered @ V[:, :k]
Alternatively, use karo: ke pehle columns same projection dete hain.
Step 1: Center karo Mean:
Step 2: Covariance
Yeh step kyun? Hum compute kar rahe hain ki har feature kitna vary aur co-vary karta hai.
Step 3: Eigendecomposition solve karo:
Quadratic formula use karke:
Yeh step kyun? Hum dhundh rahe hain ki kaun si directions sabse zyada variance capture karti hain. 99.8% variance capture karta hai!
ka Eigenvector: (elongated direction ki taraf point karta hai).
Step 4: 1D mein Project karo
Interpretation: Yeh 5 values original 2D data ko minimal information loss ke saath summarize karti hain (99.8% variance retain hai).
Singular values: ,
Eigenvalue connection check karo:
Right singular vectors ( ke columns) principal components hain: — eigendecomposition jaisa hi!
Yeh kyun kaam karta hai? SVD data matrix ko hi factor karta hai; right singular vectors automatically maximum-variance directions ki taraf point karte hain.
Variance Explained
Practical use: aise choose karo ki (95% information retain ho).
Total variance:
| Cumulative variance | EVR | |
|---|---|---|
| 1 | 10.5 | 70% |
| 2 | 13.7 | 91% |
| 3 | 14.5 | 97% |
Decision: use karo 97% variance retain karne ke liye (5D se 3D compress karo).
Common Mistakes
Kyun sahi lagta hai: "PCA toh sirf covariance matrix ka eigendecomposition hai — preprocessing kyun karein?"
Problem: Center kiye bina, pehla PC origin se data cloud ke center ki taraf point karta hai (location capture karta hai, spread nahi). Tumhe variance mean ke around chahiye, origin se nahi.
Fix: Hamesha center karo: X_centered = X - X.mean(axis=0). Standardize karna (std se divide karna) optional hai lekin recommend kiya jaata hai agar features alag-alag units mein hain.
Kyun sahi lagta hai: "Bada singular value = zyada important dimension."
Problem: Singular values data magnitude aur sample size ke saath scale karte hain. Eigenvalues ki ek specific interpretation hai — variance ke roop mein.
Fix: Sahi convert karo: . Ya explained variance ratio use karo: .
Kyun sahi lagta hai: "PCA dimensionality reduction hai — kisi bhi data par kaam karna chahiye."
Problem: PCA sabse best linear subspace dhundta hai. Non-linear structure (Swiss roll, circular clusters) ke liye, linear projections geometry destroy kar dete hain.
Fix: Kernel PCA use karo (implicitly higher-D mein map karta hai jahaan structure linear hai) ya manifold learning methods (t-SNE, UMAP, Isomap).
Computational Complexity
| Method | Time Complexity | Space | Best When | |--------|-------------|--------| | Eigendecomposition of | | | (kam features) | | SVD of | | | (kam samples) | | Randomized SVD | | | , bahut bada |
Practical tip: ke liye, randomized/truncated SVD use karo (jaise sklearn.decomposition.PCA with svd_solver='randomized').
Recall Ek 12-Saal ke Bachche ko Explain Karo
Socho tum ek pancake-shaped firefly cloud ki photos le rahe ho. Ek angle se (upar se dekhne par), poora cloud faila hua dikhta hai — kaafi variation. Doosre angle se (side se), patla dikhta hai — kam variation. PCA automatically best camera angles dhundhne jaisa hai.
Yeh dekho: Tumhare paas firefly positions ka ek bada spreadsheet hai (shayad 1000 dimensions — har firefly ki brightness, position, speed, etc.). PCA "sabse interesting" directions dhundta hai — wo jinmein data sabse zyada spread hota hai. Phir boring directions (jahaan sab ek jaisa dikhta hai) hata dete hain aur sirf 2-3 important directions rakhte hain. Ab tum cloud ko paper par draw kar sakte ho!
Eigendecomposition wala tarika poochhta hai: "Kis direction mein sabse zyada variance hai?" Yeh dekhta hai ki data points average se kaise differ karte hain aur mathematically wo direction dhundta hai (covariance matrix ka eigenvector).
SVD wala tarika poochhta hai: "Main data ko simple pieces mein kaise tod sakta hoon?" Yeh data ko ki tarah factor karta hai — lekin giant matrices ke liye. Pata chalta hai, yeh pieces wahi important directions batate hain!
Dono methods same answer dete hain: yeh rahi tumhari 2-3 magic camera angles. Data compress karo, visualize karo, aur kaam khatam!
SVD PCA ke liye SVP:
- SVD decomposition of centered X
- V matrix = principal components
- Variance = sigma² / (n-1)
- Project: Z = XV_k
Connections
- 2.5.07-K-Means-Clustering - PCA aksar preprocessing ke taur par use hota hai clustering speed up karne ke liye
- 2.5.01-Introduction-to-Unsupervised-Learning - PCA ek foundational unsupervised technique hai
- 2.4.03-Feature-Scalingand-Normalization - PCA se pehle standardization feature importance equalize karta hai
- 3.2.05-Autoencoders - Neural networks use karke PCA ka non-linear generalization
- Linear-Algebra-Eigenvalues-and-Eigenvectors - Eigendecomposition ki mathematical foundation
- Linear-Algebra-SVD - SVD theory aur PCA se aage applications
- 2.6.04-Kernel-PCA - Non-linear data ke liye extended PCA
#flashcards/ai-ml
PCA ka full form kya hai aur yeh kya karta hai? :: Principal Component Analysis data mein orthogonal directions dhundta hai jo variance ke order mein arrange hote hain, dimensionality reduction enable karta hai maximum information preserve karte hue.