请给出一个多元线性回归的MATLAB案例以及代码
时间: 2023-09-15 16:24:25 浏览: 107
以下是一个多元线性回归的 MATLAB 案例和代码:
案例描述:假设你想预测一辆车的油耗,你有这辆车的马力、重量和引擎大小等多个特征值。通过多元线性回归建立模型,来预测这辆车的油耗。
数据集:MATLAB 自带的 carbig 数据集。
代码:
```
% 加载数据集
load carbig
% 取出所需特征值
X = [Horsepower Weight Displacement];
% 取出目标值
Y = MPG;
% 将数据集拆分为训练集和测试集
cv = cvpartition(length(Y),'HoldOut',0.2); % 80% 的数据作为训练集
idx = cv.test;
% 训练集
Xtrain = X(~idx,:);
Ytrain = Y(~idx);
% 测试集
Xtest = X(idx,:);
Ytest = Y(idx);
% 标准化特征值
Xtrain = zscore(Xtrain);
Xtest = zscore(Xtest);
% 多元线性回归模型
mdl = fitlm(Xtrain,Ytrain);
% 预测测试集结果
Ypred = predict(mdl,Xtest);
% 计算 MSE(均方误差)
mse = mean((Ypred - Ytest).^2);
% 打印结果
disp(['MSE: ' num2str(mse)]);
disp(['R-squared: ' num2str(mdl.Rsquared.Ordinary)]);
disp(['Coefficients: ']);
disp(mdl.Coefficients);
```
解释:
1. 加载 carbig 数据集并取出所需特征值和目标值。
2. 将数据集拆分为训练集和测试集。
3. 对特征值进行标准化处理,使其在各个维度上具有相同的重要性。
4. 使用 fitlm 函数创建多元线性回归模型。
5. 使用 predict 函数预测测试集结果。
6. 计算 MSE(均方误差)。
7. 打印结果,包括 MSE、R-squared(决定系数)和模型系数。
注意:在实际应用中,可能需要对数据进行更多的预处理和特征工程,以提高模型的准确性和泛化能力。
阅读全文