fastICAプログラムを書く、その前に白色化のコード
import numpy as np import scipy.linalg as LA def whitening(x): nData, nDim = np.shape(x) #中心化centering x = x - np.mean(x,axis=0) #相関行列 C = np.dot(x.T, x) / nData #共分散行列の固有値分解でE,Dを求める E, D, E_T = LA.svd(C) D = np.diag(D ** (-0.5)) #白色化行列V V = np.dot(E, np.dot(D, E_T)) #線形変換z z = np.dot(x, V.T) return z