请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师关于这个式子的维度的问题

现在X.dot(w)得到的是X(m * n) dot w(n, ) --> vector矩阵乘以向量(我们一般认为向量是列向量那就是w(n *1))所以X.dot(w)得到的应该是(m * 1)的一个矩阵
①为啥还要reshape成一列的?
Then↓
现在得到的X.dot(w)每一行都是X在第一主成分向量上的投影的长度分别放在每一行上,现在shape是(m * 1),
再让它标量乘法(对应项相乘)w也是(m * 1),对应项相乘得到的是一个在w这个向量上对应的位置坐标
然后进行用特征矩阵去减去刚刚得到的这个在w向量上的分量
②一个矩阵减去一个向量是什么?
希望得到您的解答,谢谢您!

图片描述

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2019-03-10 11:22:50

X.dot(w) 得到的结果不是(m*1)的矩阵,而是一个一维向量(numpy的一维数组):)


印象里你学过我的线数课程?回忆一下:通过矩阵和向量的运算,可以理解成矩阵是向量的函数,把一个向量转成另一个向量。


可以简单的把X.dot(w)的结果存成另外一个变量,必须叫x,然后通过x.shape(或者其他方法)来研究x的维度,x到底是什么:)


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 老师 X.dot(w).reshape(-1,1)是(100,1)的矩阵,w是(2,1)的矩阵,为什么相乘之后会得到(100,2)的矩阵呢?
    回复 有任何疑惑可以回复我~ 2019-04-25 00:04:22
  • 这里用的是*,不是dot,所以不是矩阵的乘法,是numpy自己定义的*,即让X的每一行(一个数)和w相乘:)回忆一下,前面讲numpy的时候提过,*是element-wise的乘法,[1, 2] * [3, 4] = [1*3, 2*4] = [3, 8] :)
    回复 有任何疑惑可以回复我~ 2019-04-25 07:40:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信