BGD梯度下降法代码
时间: 2023-11-12 08:16:45 浏览: 89
梯度下降代码python
5星 · 资源好评率100%
以下是一个简单的梯度下降法的代码示例:
```python
import numpy as np
def gradient_descent(X, y, learning_rate=0.01, num_iterations=1000):
num_samples, num_features = X.shape
weights = np.zeros(num_features)
bias = 0
cost_history = []
for i in range(num_iterations):
# 计算预测值
y_pred = np.dot(X, weights) + bias
# 计算误差
error = y_pred - y
# 计算梯度
gradient_weights = (2/num_samples) * np.dot(X.T, error)
gradient_bias = (2/num_samples) * np.sum(error)
# 更新权重和偏置
weights -= learning_rate * gradient_weights
bias -= learning_rate * gradient_bias
# 计算损失函数
cost = np.mean(np.square(error))
cost_history.append(cost)
return weights, bias, cost_history
```
在上述代码中,X 是训练样本的特征矩阵,y 是对应的目标变量。learning_rate 是学习率,控制每一次更新的步长。num_iterations 是迭代次数。
该代码将返回训练后的权重、偏置以及每次迭代的损失值。梯度下降法通过不断调整权重和偏置来最小化预测值与真实值之间的差异。
你可以根据自己的数据和需求进行相应的调整和扩展。
阅读全文