0
我试图在R中使用SVD进行矩阵的降维。我能找到“MovMat”矩阵的D,U,V矩阵。我想减少它们在D矩阵中的值小于“阈值”的一些维度。 我写下面的代码。但我不知道如何在“MovMat”矩阵中找到低于阈值的值。RVD中的SVD降维
library(cluster)
library(fpc)
# "MovMat" is a users-movies Matrix.
# It is contain the rating score which each user gives for each movie.
svdAllDimensions = svd(MovMat)
d=diag(svd$d) # Finding D, U, V
u=svd$u
v=svd$v
一个可重复的例子可能有助于您获得答案的机会。现在,它听起来像你只是问如何测试'D <阈值',但我猜(?)你知道该怎么做... – 2015-02-08 20:30:51
我的问题是在R编程语言。我知道如何在理论上做到这一点。例如,我不知道如何删除所有值为零的列。 – Rojin 2015-02-08 21:07:48
下面是你如何在R中做到这一点。首先,创建一个示例矩阵和阈值,做这个'set.seed(1); m(diag(5)); thresh < - 0.5'。然后看看你的矩阵,它的对角线等等。 DIAG(米); diag(m)
2015-02-08 21:28:56