R 将矩阵与向量相乘得到矩阵
我有一个文件术语矩阵:R 将矩阵与向量相乘得到矩阵,r,matrix-multiplication,lsa,R,Matrix Multiplication,Lsa,我有一个文件术语矩阵: document_term_matrix <- as.matrix(DocumentTermMatrix(corpus, control = list(stemming = FALSE, stopwords=FALSE, minWordLength=3, removeNumbers=TRUE, removePunctuation=TRUE ))) tf_idf的维度也是nxm 最初,我不希望这种乘法有效,因为维度是不一致的。然而,考虑到这个输出,我现在期望gw_i
document_term_matrix <- as.matrix(DocumentTermMatrix(corpus, control = list(stemming = FALSE, stopwords=FALSE, minWordLength=3, removeNumbers=TRUE, removePunctuation=TRUE )))
tf_idf
的维度也是nxm
最初,我不希望这种乘法有效,因为维度是不一致的。然而,考虑到这个输出,我现在期望
gw_idf
的维度是mxm。真的是这样吗?如果是这样:大小为n
的gw\u idf
向量发生了什么?矩阵乘法是在R中使用%*%
,而不是*
(后者只是元素乘法)。你的推理部分正确,只是使用了错误的符号
关于矩阵乘法,只有当第一个矩阵的第二维与第二个矩阵的第一维相同时,矩阵乘法才可能。结果尺寸是第一个矩阵的dim1乘以第二个矩阵的dim2
在你的例子中,你告诉我们你有一个1xn
矩阵乘以一个nxm
矩阵,这应该得到一个1xm
矩阵。您可以在本例中检查这种情况:
a <- matrix(runif(100, 0 , 1), nrow = 1, ncol = 100)
b <- matrix(runif(100 * 200, 0, 1), nrow = 100, ncol = 200)
c <- a %*% b
dim(c)
[1] 1 200
a是的,对不起,我之前没有正确说明尺寸。我现在已经改变了尺寸。执行元素相乘的事实解释了答案。没问题!对于新手来说,这是一个很好的问题。
tf_idf <- lw_tf * gw_idf
a <- matrix(runif(100, 0 , 1), nrow = 1, ncol = 100)
b <- matrix(runif(100 * 200, 0, 1), nrow = 100, ncol = 200)
c <- a %*% b
dim(c)
[1] 1 200