小批量梯度下降法matlab实现
时间: 2023-10-16 14:17:18 浏览: 207
梯度下降算法matlab的实现
以下是使用 MATLAB 实现小批量梯度下降法的示例代码:
```matlab
% 随机生成数据集
X = randn(100,2);
y = 2*X(:,1) - 3*X(:,2) + randn(100,1);
% 初始化参数
theta = randn(2,1);
alpha = 0.01;
batch_size = 10;
num_iters = 100;
% 迭代更新参数
for i = 1:num_iters
% 随机选择一批数据
idx = randperm(size(X,1),batch_size);
X_batch = X(idx,:);
y_batch = y(idx);
% 计算梯度
grad = X_batch'*(X_batch*theta - y_batch);
% 更新参数
theta = theta - alpha*grad;
end
```
在上面的代码中,我们首先随机生成一个数据集,然后初始化模型参数 `theta`、学习率 `alpha`、小批量数据的大小 `batch_size` 和迭代次数 `num_iters`。接着,我们使用一个 `for` 循环来迭代更新参数。在每次迭代中,我们随机选择一批数据,计算梯度并更新参数。最终,我们得到了一个能够较好地拟合数据的模型参数 `theta`。
需要注意的是,以上代码只是一个简单的示例,实际应用中还需要根据具体情况对其进行修改和优化。
阅读全文