一元线性回归梯度下降法python实现
时间: 2024-04-01 21:30:05 浏览: 70
python实现梯度下降法
一元线性回归是一种简单的回归分析方法,用于建立一个自变量和因变量之间的线性关系模型。梯度下降法是一种常用的优化算法,用于求解最小化损失函数的参数。
以下是一元线性回归梯度下降法的Python实现:
```python
import numpy as np
def gradient_descent(x, y, learning_rate, num_iterations):
num_samples = len(x)
theta0 = 0
theta1 = 0
for i in range(num_iterations):
y_pred = theta0 + theta1 * x
error = y_pred - y
# 更新参数
theta0 -= learning_rate * (1/num_samples) * np.sum(error)
theta1 -= learning_rate * (1/num_samples) * np.sum(error * x)
return theta0, theta1
# 示例数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
learning_rate = 0.01
num_iterations = 1000
theta0, theta1 = gradient_descent(x, y, learning_rate, num_iterations)
print("theta0:", theta0)
print("theta1:", theta1)
```
上述代码中,我们首先定义了一个`gradient_descent`函数,该函数接受输入数据`x`和目标值`y`,学习率`learning_rate`以及迭代次数`num_iterations`作为参数。在每次迭代中,根据当前的参数值计算预测值`y_pred`,然后计算误差`error`。接下来,根据梯度下降法的更新规则,更新参数`theta0`和`theta1`。最后,返回最终的参数值。
在示例数据中,我们使用了简单的线性关系,即`y = 2x`。通过运行上述代码,可以得到最终的参数值`theta0`为接近0,`theta1`为接近2,这与我们设定的线性关系相符。
阅读全文