python代码示例梯度下降法对数据进行线性拟合
时间: 2023-04-04 11:03:44 浏览: 112
可以回答这个问题。梯度下降法是一种常用的优化算法,可以用于线性回归模型的参数估计。以下是一个 Python 代码示例:
```python
import numpy as np
# 生成样本数据
x = np.random.rand(100)
y = 2 * x + 1 + np.random.randn(100) * 0.1
# 初始化参数
theta = np.random.randn(2)
# 定义损失函数
def loss_function(theta, x, y):
y_pred = theta[0] + theta[1] * x
return np.mean((y_pred - y) ** 2)
# 定义梯度函数
def gradient(theta, x, y):
y_pred = theta[0] + theta[1] * x
grad = np.zeros(2)
grad[0] = np.mean(y_pred - y)
grad[1] = np.mean((y_pred - y) * x)
return grad
# 梯度下降迭代
learning_rate = 0.1
for i in range(1000):
grad = gradient(theta, x, y)
theta = theta - learning_rate * grad
if i % 100 == 0:
print("Iteration %d, loss = %.4f" % (i, loss_function(theta, x, y)))
# 输出结果
print("theta = ", theta)
```
这段代码使用随机生成的数据,通过梯度下降法对数据进行线性拟合,得到参数估计结果。
阅读全文