我正在尝试在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
答案 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
}
}
}
}