标签: python numpy regression curve-fitting gradient-descent
我编写了一些对几个数据点执行梯度下降的代码。 由于某种原因,曲线无法正确收敛,但是我不知道为什么会这样。我总是以爆炸的尾巴结束。
我做错了其中一项计算吗?我是真的陷入了当地最低要求还是其他问题?
这是我的代码:
TimeSpan.Zero;
我想避免陷入最低限度。我曾尝试将初始权重设置为随机值,但无济于事,有时它会降低一些,但随后又给我相同的行为。
这是我得到的情节之一:
这是最小二乘解获得的预期结果:
答案 0 :(得分:1)
您的estimate函数应为
estimate
def estimate(weights, x, order): est = 0 for i in range(order+1): est += weights[i] * x ** i return est
更好的是,由于定单信息已经以weights向量的大小存在,因此请使用以下方法删除冗余:
weights
def estimate(weights, x): est = 0 for i in range(len(weights)): est += weights[i] * x ** i return est
这是使用您的代码并运行2000次迭代时得到的: