In [ ]:
import numpy as np
# Definizione della funzione di whitening
def whitening(X):
# Calcola la media delle colonne
mu = X.mean(0)
# Calcola la matrice di covarianza
sigma = np.cov(X.T)
# Calcola gli autovalori e gli autovettori della matrice di covarianza
evals, evecs = np.linalg.eigh(sigma)
# Calcola la matrice di trasformazione per il whitening
w = evecs / np.sqrt(evals)
# Applica la trasformazione di whitening ai dati
X = (X - mu) @ w
return X
whitening_data = whitening(X)