梯度下降代码实现python
时间: 2024-02-17 18:59:10 浏览: 83
梯度下降是一种常用的优化算法,用于求解函数的最小值。下面是一个简单的梯度下降的代码实现示例(使用Python语言):
```python
import numpy as np
def gradient_descent(X, y, learning_rate, num_iterations):
num_samples, num_features = X.shape
theta = np.zeros(num_features) # 初始化参数向量
for i in range(num_iterations):
# 计算预测值
y_pred = np.dot(X, theta)
# 计算误差
error = y_pred - y
# 计算梯度
gradient = np.dot(X.T, error) / num_samples
# 更新参数
theta -= learning_rate * gradient
return theta
# 示例用法
X = np.array([[1, 2], [3, 4], [5, 6]]) # 特征矩阵
y = np.array([3, 5, 7]) # 目标值向量
learning_rate = 0.01 # 学习率
num_iterations = 1000 # 迭代次数
theta = gradient_descent(X, y, learning_rate, num_iterations)
print("最优参数:", theta)
```
上述代码中,`gradient_descent` 函数接受特征矩阵 `X`、目标值向量 `y`、学习率 `learning_rate` 和迭代次数 `num_iterations` 作为输入参数。在每次迭代中,根据当前参数向量 `theta` 计算预测值 `y_pred`,然后计算误差 `error` 和梯度 `gradient`,最后更新参数向量 `theta`。最终返回得到的最优参数向量。
注意:上述代码仅为示例,实际应用中可能需要根据具体问题进行适当的修改和调整。
阅读全文