梯度下降法 python_python实现梯度下降法
时间: 2023-07-07 07:30:22 浏览: 115
python实现梯度下降法
好的,我理解了你的要求。以下是 Python 实现梯度下降法的代码:
```
import numpy as np
def gradient_descent(X, y, theta, alpha, num_iters):
"""
X: 输入特征矩阵
y: 输出标签向量
theta: 参数向量
alpha: 学习率
num_iters: 迭代次数
"""
m = len(y)
for i in range(num_iters):
h = np.dot(X, theta)
loss = h - y
gradient = np.dot(X.T, loss) / m
theta = theta - alpha * gradient
return theta
```
这个函数接受四个参数:输入特征矩阵 `X`、输出标签向量 `y`、参数向量 `theta`、学习率 `alpha` 和迭代次数 `num_iters`。在函数内部,使用 `for` 循环来进行迭代,每次迭代计算模型预测值 `h`,然后计算损失 `loss` 和梯度 `gradient`。最后更新参数向量 `theta`,返回更新后的参数向量。
需要注意的是,在使用这个函数之前,需要先对输入特征矩阵 `X` 进行预处理,将所有特征值归一化到相同的尺度,以避免在梯度下降过程中出现数值不稳定的情况。
阅读全文