Singular Value Decomposition A = U Σ Vᵀ reveals rank, noise filtering, and low-rank approximations—used in recommender systems, compression, and pseudoinverse solves.
Components
- U — left singular vectors
- Σ — singular values (diagonal, nonnegative)
- Vᵀ — right singular vectors
linalg.svd(A, full_matrices=False)— economy SVD
Truncation
Keep top k singular values to approximate A with lower rank—denoise matrices and reduce storage.
Example
import numpy as np
from scipy import linalg
A = np.array([[1., 2.], [3., 4.], [5., 6.]])
U, s, Vt = linalg.svd(A, full_matrices=False)
print('singular values:', s)
Important interview questions and answers
- Q: SVD vs eig?
A: SVD always exists for any matrix; eig needs square and diagonalizable cases. - Q: Small singular values?
A: Indicate near rank deficiency—regularize or truncate in ML.
Self-check
- What three matrices does SVD produce?
- Why use full_matrices=False on tall matrices?
Tip: Truncate small singular values for denoising—watch how much variance you keep.
Interview prep
- SVD use?
Rank, denoising, low-rank approximation, pseudoinverse.
- Small singular values?
Near rank deficiency—regularize or truncate.