Added supportp for tall X in PCA

This commit is contained in:
Arnar Flatberg 2007-01-25 12:17:16 +00:00
parent fa3722600c
commit aeb37cf4cd

View File

@ -17,8 +17,16 @@ def pca(a, aopt, scale='scores', mode='normal'):
"""
m, n = a.shape
u, s, vt = svd(a, full_matrices=0)
eigvals = (1./m)*s
if m*10.>n:
v, s, ut = dot(a.T, a)
s = sqrt(s)
eigvals = s
u = u.T
vt = v.T
else:
u, s, vt = svd(a, full_matrices=0)
eigvals = (1./m)*s
T = u*s
T = T[:,:aopt]
P = vt[:aopt,:].T