matlab线性回归代码
时间: 2023-07-03 16:13:31 浏览: 87
以下是一个简单的MATLAB线性回归代码示例:
```matlab
% 导入数据
data = load('data.txt');
X = data(:, 1); % 自变量
y = data(:, 2); % 因变量
m = length(y); % 样本数量
% 特征缩放
X = (X - mean(X)) / std(X);
% 向X添加一列1,用于计算常数项
X = [ones(m, 1), X];
% 初始化theta
theta = zeros(2, 1);
% 设置梯度下降参数
alpha = 0.01; % 学习率
num_iters = 1500; % 迭代次数
% 运行梯度下降算法来拟合theta
[theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters);
% 绘制拟合直线
plot(X(:, 2), y, 'rx', 'MarkerSize', 10);
hold on;
plot(X(:, 2), X * theta, '-');
legend('Training data', 'Linear regression');
xlabel('Population');
ylabel('Profit');
```
其中,`gradientDescent` 函数是一个自定义的梯度下降算法实现,可以在MATLAB中编写。该函数的输入参数包括自变量、因变量、初始参数、学习率和迭代次数等,输出参数为拟合的参数和每次迭代的代价函数值。
阅读全文