Challenge: Whitening via Eigenvalue Decomposition
Swipe to start coding
You are given a dataset X (2D NumPy array) with correlated features.
Your goal is to perform feature whitening β transforming the data so that features become uncorrelated and have unit variance, using eigenvalue decomposition of the covariance matrix.
Steps:
- Center the data (subtract column means).
- Compute the covariance matrix
cov_matrixusingnp.cov(X_centered, rowvar=False). - Perform eigenvalue decomposition with
np.linalg.eigh. - Compute a regularized whitening matrix:
Theeps = 1e-10 eig_vals_safe = np.where(eig_vals < eps, eps, eig_vals) whitening_matrix = eig_vecs @ np.diag(1.0 / np.sqrt(eig_vals_safe)) @ eig_vecs.Tepsprevents division by zero for near-zero eigenvalues (rank-deficient data). - Compute the whitened data:
X_whitened = X_centered @ whitening_matrix - Verify that the covariance of
X_whitenedis close to the identity matrix in the nonzero subspace.
Solution
Thanks for your feedback!
single
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
Can you explain this in simpler terms?
What are the next steps I should take?
Can you provide an example?
Awesome!
Completion rate improved to 5.26
Challenge: Whitening via Eigenvalue Decomposition
Swipe to show menu
Swipe to start coding
You are given a dataset X (2D NumPy array) with correlated features.
Your goal is to perform feature whitening β transforming the data so that features become uncorrelated and have unit variance, using eigenvalue decomposition of the covariance matrix.
Steps:
- Center the data (subtract column means).
- Compute the covariance matrix
cov_matrixusingnp.cov(X_centered, rowvar=False). - Perform eigenvalue decomposition with
np.linalg.eigh. - Compute a regularized whitening matrix:
Theeps = 1e-10 eig_vals_safe = np.where(eig_vals < eps, eps, eig_vals) whitening_matrix = eig_vecs @ np.diag(1.0 / np.sqrt(eig_vals_safe)) @ eig_vecs.Tepsprevents division by zero for near-zero eigenvalues (rank-deficient data). - Compute the whitened data:
X_whitened = X_centered @ whitening_matrix - Verify that the covariance of
X_whitenedis close to the identity matrix in the nonzero subspace.
Solution
Thanks for your feedback!
single