【发布时间】:2019-05-09 04:59:48
【问题描述】:
我在 Python 中做了一个梯度下降算法,但它不起作用。我的 m 和 b 值不断增加并且永远不会停止,直到我得到 -inf 错误或在平方错误中遇到溢出。
import numpy as np
x = np.array([2,3,4,5])
y = np.array([5,7,9,5])
m = np.random.randn()
b = np.random.randn()
error = 0
lr = 0.0001
for q in range(1000):
for i in range(len(x)):
ypred = m*x[i] + b
error += (ypred - y[i]) **2
m = m - (x * error) *lr
b = b - (lr * error)
print(b,m)
我希望我的算法能够为我的数据(x 和 y)返回最佳的 m 和 b 值,但它不起作用。出了什么问题?
【问题讨论】:
-
看来您使用的公式不正确。
-
什么是正确的公式,你有解释我的代码为什么不起作用的原因吗?
-
如果我没记错你忘了除以
x的长度
标签: python python-3.x machine-learning linear-regression gradient-descent