批量梯度法的python代码
时间: 2023-11-13 20:39:51 浏览: 75
各种梯度下降算法的代码(python)
5星 · 资源好评率100%
下面是一个使用批量梯度下降法的简单线性回归的Python代码示例:
```python
import numpy as np
def batch_gradient_descent(X, y, learning_rate=0.01, num_iterations=1000):
m = len(y) # 样本数
n = X.shape[1] # 特征数
# 初始化参数
theta = np.zeros(n)
cost_history = []
for iteration in range(num_iterations):
# 计算预测值
y_pred = np.dot(X, theta)
# 计算误差和梯度
error = y_pred - y
gradient = np.dot(X.T, error) / m
# 更新参数
theta -= learning_rate * gradient
# 计算损失函数值
cost = np.sum(error**2) / (2 * m)
cost_history.append(cost)
return theta, cost_history
# 示例数据
X = np.array([[1, 1], [1, 2], [1, 3], [1, 4]])
y = np.array([2, 3, 4, 5])
# 批量梯度下降
theta, cost_history = batch_gradient_descent(X, y)
print(f"theta: {theta}")
print(f"cost history: {cost_history}")
```
这是一个简单的线性回归问题,使用批量梯度下降法更新参数。函数`batch_gradient_descent`接受输入特征矩阵`X`和目标值向量`y`,同时可以设置学习率`learning_rate`和迭代次数`num_iterations`。函数返回训练后的参数`theta`和每次迭代的损失函数值`cost_history`。在示例中,我们使用了一个包含两个特征的简单数据集进行演示。
阅读全文