采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问数据结构哪里错了吗?
使用np.hsplit切割矩阵以后,y还是一个二维矩阵,是m*1的二维数组。但是我们传的参数,y需要是一个向量。
所以,需要使用reshape,把二维数组转成一维数组。
y
=
y.reshape(
-
1
,)
另外,对于课程的代码,gradient的值建议再做一次归一化:
gradient
dJ(theta, X_b, y)
/
np.linalg.norm(gradient)
否则的话,使用一般的数据,很容易溢出。当然了,还需要调整eta和n_iters的参数:)
关于这一点,可以参考这里:
https://coding.imooc.com/learn/questiondetail/69537.html
https://coding.imooc.com/learn/questiondetail/113270.html
当然,也可以对整体数据做一次标准化处理:)
继续加油!:)
非常感谢!
不过有点糊涂,一会矩阵一会向量的,不是矩阵相乘吗,行列也对上了,为什么还要将y向量化,不过测试了一下是需要向量化要不x_b.dot(theta)-y是个矩阵
其实本质是你要实现的数学公式是什么样子的。在这里,我的循环中,每次计算一个数。向量和向量的点乘,结果是一个数字。向量个矩阵做乘法,在数学里是没有意义的(但是矩阵对向量做乘法,是有意义的)。
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.7k 19
3.7k 17
3.1k 15
1.7k 15
1.6k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号