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

来源:7-4 求数据的前n个主成分

qtw1998

2019-03-10

现在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向量上的分量
②一个矩阵减去一个向量是什么?
希望得到您的解答,谢谢您!

图片描述

写回答

1回答

liuyubobobo

2019-03-10

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


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


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


继续加油!:)

0
2
liuyubobobo
回复
qq_雨后天晴_0
这里用的是*,不是dot,所以不是矩阵的乘法,是numpy自己定义的*,即让X的每一行(一个数)和w相乘:)回忆一下,前面讲numpy的时候提过,*是element-wise的乘法,[1, 2] * [3, 4] = [1*3, 2*4] = [3, 8] :)
2019-04-25
共2条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程