MATLAB PLS 回归:代码示例、R2 和 RMSE 计算
使用 MATLAB 进行 PLS 回归并计算 R2 和 RMSE
本指南将向您展示如何使用 MATLAB 进行偏最小二乘 (PLS) 回归,并计算相关系数 R2 和均方根误差 RMSE。该示例代码使用两个 Excel 文件读取数据,并提供逐步说明以帮助您完成此任务。
1. 读取数据
当数据存储在两个 Excel 文件中时,您可以使用 MATLAB 的 xlsread 函数读取数据。
2. 分割数据集
将数据分割为训练集和测试集,以便评估模型的性能。
3. 拟合 PLS 模型
使用 plsregress 函数拟合 PLS 模型。
4. 预测
使用拟合的 PLS 模型预测测试集的响应变量。
5. 计算 R2 和 RMSE
计算相关系数 R2 和均方根误差 RMSE 以评估模型的性能。
示例代码
clc; clear;
% 读取数据
x_data = xlsread('x_data.xlsx');
y_data = xlsread('y_data.xlsx');
% 分割数据集
train_ratio = 0.8; % 训练集比例
[trainInd, testInd] = crossvalind('HoldOut', size(x_data, 1), train_ratio);
x_train = x_data(trainInd, :);
y_train = y_data(trainInd, :);
x_test = x_data(testInd, :);
y_test = y_data(testInd, :);
% 拟合 PLS 模型
num_components = 5; % PLS 模型的成分数
pls_model = plsregress(x_train, y_train, num_components);
% 预测
y_pred = [ones(size(x_test, 1), 1) x_test] * pls_model;
% 计算 R2
SSR = sum((y_pred - mean(y_test)).^2);
SST = sum((y_test - mean(y_test)).^2);
R2 = 1 - SSR/SST;
% 计算 RMSE
RMSE = sqrt(mean((y_pred - y_test).^2));
% 显示结果
disp(['R2: ' num2str(R2)]);
disp(['RMSE: ' num2str(RMSE)]);
说明
x_data.xlsx和y_data.xlsx是存储数据的两个 Excel 文件。train_ratio是训练集的比例,在本例中为 80%。num_components是 PLS 模型的成分数。
请确保您的 Excel 文件 x_data.xlsx 和 y_data.xlsx 存储了正确的数据,并且数据在不同的工作表或列中。如果需要,您可以根据实际情况在代码中进行相应的修改和处理。
原文地址: https://www.cveoy.top/t/topic/bRID 著作权归作者所有。请勿转载和采集!