梯度下降法线性回归 python代码
时间: 2024-08-26 14:00:15 浏览: 58
Python实现梯度下降法线性回归模拟
梯度下降法在Python中常用于实现线性回归模型,这是一种基础的机器学习方法。以下是使用numpy库实现简单线性回归的梯度下降法示例:
```python
import numpy as np
# 定义数据(假设X是设计矩阵,y是目标变量)
X = np.array([[1], [2], [3], [4]])
y = np.array([2, 3, 4, 5])
# 初始化参数(斜率和截距)
theta = np.zeros(2) # 线性回归有2个参数,[m, c]
# 定义学习率和最大迭代次数
alpha = 0.01 # 学习率
max_iters = 1000 # 迭代次数
# 主循环 - 使用梯度下降法求解最优参数
for _ in range(max_iters):
hypothesis = X @ theta # 预测值
gradient = (1 / len(X)) * X.T @ (hypothesis - y) # 梯度
theta -= alpha * gradient # 更新参数
# 输出最终的参数(斜率和截距)
print("Optimal parameters: ", theta)
```
在这个例子中,`@`操作符表示矩阵乘法,`(hypothesis - y)`计算的是预测值与真实值之间的偏差,用于计算梯度。每次迭代都会沿着梯度的反方向更新参数,直至达到收敛。
阅读全文