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