PCA অ্যালগরিদম
PCA Algorithm Step-by-Step
ডেটা থেকে principal components পর্যন্ত
≈ ১০ মিনিট
PCA আসলে কী করে? — Covariance matrix-এর eigenvectors বের করে; সবচেয়ে বড় eigenvalue-এর দিকটাই প্রথম principal component। জ্যামিতিক অর্থ: এমন একটি অক্ষ যেখানে ডেটা সবচেয়ে বেশি ছড়িয়ে আছে।
ছয় ধাপ
- ১. ডেটা ম্যাট্রিক্স X (n×d) তৈরি করো।
- ২. প্রতিটি কলাম mean-center (ও দরকার হলে standardize) করো।
- ৩. Covariance C = (1/(n-1)) XᵀX গণনা।
- ৪. C-এর eigenvalues λ₁ ≥ λ₂ ≥ … ও eigenvectors v₁, v₂, … বের করো।
- ৫. প্রথম k eigenvectors নিয়ে Vₖ (d×k) গঠন করো।
- ৬. Project: Z = X Vₖ — নতুন n×k ডেটা।
SVD-ভিত্তিক বিকল্প
Mean-centered X-এর SVD: X = UΣVᵀ। তখন V-এর কলামই principal components, σᵢ²/(n-1) = λᵢ। এই পথ সংখ্যাগতভাবে অনেক বেশি stable।
Variance Explained
কতগুলো component রাখতে হবে তা বুঝতে cumulative explained variance প্লট করো — সাধারণত ৯০–৯৫% ধরে রাখাই যথেষ্ট।
ছোট উদাহরণ
2D ডেটা [(1,1), (2,2), (3,3), (4,4.1)] প্রায় একটি লাইনে। PCA করলে PC1 ≈ (1,1)/√2 দিকে — প্রায় সব variance এক দিকেই। PC2-এর λ ≈ 0।
ডেটা (mean-centered): X̃ = [[-2,-1],[-1,-1],[0,0],[1,1],[2,1]]।
C = (1/4) X̃ᵀX̃ = (1/4)[[10, 7], [7, 4]] = [[2.5, 1.75], [1.75, 1.0]]।
λ² − 3.5λ + (2.5·1 − 1.75²) = λ² − 3.5λ + (2.5 − 3.0625) = λ² − 3.5λ − 0.5625 = 0।
λ ≈ 3.65, -0.15 → ছোট গোলকীয় ত্রুটি; এখানে demo, বাস্তবে সংখ্যাগত পদ্ধতি ব্যবহার।
PC1 ≈ বৃহত্তম λ-এর eigenvector ≈ (0.85, 0.53) — সেই দিকেই ডেটার ছড়িয়ে যাওয়া সবচেয়ে বেশি।
Projection: Z = X̃ · v₁ — ১D summary।
মূল ভাবনা
- 1.Center → covariance → eigendecomposition → top-k → project।
- 2.PC = বৃহত্তম λ-এর eigenvectors।
- 3.Z = X Vₖ — মাত্রা d → k।
- 4.Explained variance ratio দিয়ে k বাছো।
নিজেকে যাচাই করো
প্রশ্নে ক্লিক করে উত্তর দেখো — তবে আগে নিজে চেষ্টা করো।
প্রশ্ন 1।প্রথম ধাপ কী?
প্রশ্ন 2।PC1 কী?
প্রশ্ন 3।SVD পথে PC কোথায়?
প্রশ্ন 4।যদি cumulative explained variance ৯০% পেতে ৫০টি PC লাগে, এর অর্থ?
প্রশ্ন 5।PC1 ও PC2 কেন orthogonal?
ইন্টারেক্টিভ কুইজ
মূল ভাবনার উপর দ্রুত যাচাই — সঠিক বিকল্পটি বাছাই করো।