R中用SVD降低尺寸

时间:2015-02-08 20:16:29

标签: r svd

我正在尝试在R中使用SVD来降低矩阵的尺寸。我能够为" MovMat"找到D,U,V矩阵。矩阵。我想减少它们在D矩阵中的值小于" treshhold"的一些维度。 我写了下面的代码。但我不知道如何在" MovMat"中找到低于阈值的值。基质

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

1 个答案:

答案 0 :(得分:1)

我指定的D值小于阈值,然后再将D,V,U相互相乘,找到尺寸较小的新矩阵。

  for(i in rowOfD){
   for(j in columnOfD){
     if (i==j){
      if(d[i,j]<Threshold){
       d[i,j] = 0
      }   
     }
   }   
 }