def pca(m, k):
from numpy.linalg import svd
from numpy.linalg import eig
from numpy.linalg import det
u,s,v = svd(m)
rs = np.sqrt(np.diag(s[:k]))
x=np.dot(u[:,:k], rs)
y=np.dot(rs, v[:k])
mhat=np.dot(x, y)
return s, x, y, mhat
评论列表
文章目录