和您写的代码一样,案例数据通过了,但我边的数据报错了
来源:6-4 实现线性回归中的梯度下降法

weixin_慕少409219
2019-06-23
请问数据结构哪里错了吗?
写回答
1回答
-
使用np.hsplit切割矩阵以后,y还是一个二维矩阵,是m*1的二维数组。但是我们传的参数,y需要是一个向量。
所以,需要使用reshape,把二维数组转成一维数组。
y = y.reshape(-1,)
另外,对于课程的代码,gradient的值建议再做一次归一化:
gradient = dJ(theta, X_b, y) gradient /= np.linalg.norm(gradient)
否则的话,使用一般的数据,很容易溢出。当然了,还需要调整eta和n_iters的参数:)
关于这一点,可以参考这里:
https://coding.imooc.com/learn/questiondetail/69537.html
https://coding.imooc.com/learn/questiondetail/113270.html
当然,也可以对整体数据做一次标准化处理:)
继续加油!:)
062019-06-24
相似问题