梯度下降法的python代码
时间: 2023-07-23 12:01:53 浏览: 134
梯度下降法是一种常用的优化算法,用于求解函数的最小值。以下是一个简单的梯度下降法的Python代码示例:
```python
import numpy as np
def gradient_descent(x, learning_rate, num_iterations):
# 初始化参数
theta = np.zeros(x.shape[1])
m = x.shape[0]
for iteration in range(num_iterations):
# 计算梯度
gradients = 1/m * x.T.dot(x.dot(theta) - y)
# 更新参数
theta = theta - learning_rate * gradients
return theta
# 示例数据
x = np.array([[1, 1], [1, 2], [1, 3], [1, 4]])
y = np.array([2, 3, 4, 5])
# 调用梯度下降函数
learning_rate = 0.1
num_iterations = 1000
theta = gradient_descent(x, learning_rate, num_iterations)
print("最优参数:", theta)
```
在这个示例中,我们使用梯度下降法来拟合一个简单的线性回归模型。输入`x`是一个矩阵,每一行代表一个样本的特征,第一列为1用于表示截距项。`y`是对应的目标值。
函数`gradient_descent`接受输入数据`x`、学习率`learning_rate`和迭代次数`num_iterations`作为参数。在每次迭代中,它计算梯度并更新参数`theta`。最后返回最优参数`theta`。
请注意,这只是一个简单的示例代码,实际使用时可能需要对输入数据进行预处理、添加正则化项等。另外,学习率的选择也是一个关键的参数,需要根据具体问题进行调整。
阅读全文