基于梯度下降法的多元线性回归问题matlab代码
时间: 2024-04-25 11:23:11 浏览: 8
以下是基于梯度下降法的多元线性回归问题的MATLAB代码:
```matlab
% 数据
data = \[2.92887826637931 3.21836590215517 2.12771740086207 1.98811333310345 1.33286091547414 1.19538487534483 0.982254900646552 0.860660796896552 0.767939403965517 0.621031541293104 0.504935130301724 0.436285662931034 0.406308128189655 0.351795786767241 0.331874443017241 0.272457624956897\];
x(:,2) = 1:length(data);
x(:,1) = ones(length(x(:,2)),1);
% 初始化参数
theta = zeros(3, 1);
% 定义梯度下降参数
alpha = 0.1;
num_iters = 400;
% 定义梯度下降函数
function \[theta, J_history\] = gradientDescentMulti(X, y, theta, alpha, num_iters)
m = length(y);
J_history = zeros(num_iters, 1);
for iter = 1:num_iters
h = X * theta;
theta = theta - (alpha/m) * X' * (h - y);
J_history(iter) = computeCostMulti(X, y, theta);
end
end
% 运行梯度下降算法
\[theta, ~\] = gradientDescentMulti(x, data', theta, alpha, num_iters);
% 显示梯度下降结果
fprintf('Theta computed from gradient descent:\n%f\n%f\n%f', theta(1), theta(2), theta(3));
% 画出拟合直线
scatter(x(:,2), data, \[\], linspace(1,10,length(data)));
hold on
plot(x(:,2), x*theta, 'LineWidth', 2);
hold off
legend(\["data", "Fit"\]);
title('Fit', 'FontWeight', 'bold');
```
这段代码首先定义了数据,然后初始化参数theta。接下来,使用梯度下降算法进行多元线性回归的迭代计算。最后,打印出梯度下降计算得到的theta值,并绘制出拟合直线。
#### 引用[.reference_title]
- *1* [多特征线性回归梯度下降算法的matlab实现](https://blog.csdn.net/ShadyPi/article/details/122589273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [使用梯度下降优化参数的线性回归(Linear Regression)matlab代码](https://blog.csdn.net/Katsia/article/details/128816494)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]