gpt4 book ai didi

python - 线性回归\梯度下降python实现

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:29 24 4
gpt4 key购买 nike

出于学习目的,我正在尝试使用梯度下降法从头开始实现线性回归。我的代码的一部分真的很烦我。出于某种原因,变量 x 在我运行一行代码后被更改,我不确定为什么。

变量如下。 xy 是 numpy 数组,我在这个例子中给了它们随机数。

x = np.array([1, 2, 3, 4, ...., n])
y = np.array([1, 2, 3, , ...., n])
theta = [0, 0]
alpha = .01
m = len(x)

代码是:

theta[0] = theta[0] - alpha*1/m*sum([((theta[0]+theta[1]*x) - y)**2 for (x,y) in zip(x,y)])

一旦我运行上面的代码,x 就不再是一个列表。它仅成为变量 n 或列表中的最后一个元素。

最佳答案

发生的事情是 python 正在计算列表 zip(x,y),然后 for 循环的每次迭代都会用 (x,y) 覆盖zip(x,y) 的对应元素。当您的 for 循环终止时,(x,y) 包含 zip(x,y)[-1]

尝试

theta[0] = theta[0] - alpha*1/m*sum([((theta[0]+theta[1]*xi) - yi)**2 for (xi,yi) in zip(x,y)])

关于python - 线性回归\梯度下降python实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com