随机梯度下降 python算法
时间: 2023-09-13 10:09:58 浏览: 169
python实现随机梯度下降法
随机梯度下降(Stochastic Gradient Descent,SGD)是一种常用的优化算法,被广泛应用于机器学习和深度学习中。它通过在每次迭代中随机选择一部分样本进行梯度计算和参数更新,来逐步优化模型的参数。以下是一个简单的 Python 实现:
```python
import numpy as np
def sgd(x, y, theta, alpha, num_iters):
m = len(y)
for i in range(num_iters):
# 随机选择一个样本
rand_idx = np.random.randint(0, m)
x_i = x[rand_idx, :]
y_i = y[rand_idx]
# 计算梯度
h = np.dot(x_i, theta)
grad = (h - y_i) * x_i
# 更新参数
theta -= alpha * grad
return theta
```
其中,x 和 y 分别是输入特征和标签,theta 是参数向量,alpha 是学习率,num_iters 是迭代次数。在每次迭代中,我们随机选择一个样本,计算该样本的梯度并更新参数。最终返回优化后的参数向量 theta。
阅读全文