如果数据集 'x' 和 'y' 是两个表格 'x_table' 和 'y_table',你可以按照以下方式修改代码:

clc; clear;

% 准备数据
load data.mat % 假设你的数据已经准备好,包含x_table和y_table

% 将表格转换为矩阵
X = table2array(x_table);
Y = table2array(y_table);

% 分割数据集
train_ratio = 0.8; % 训练集比例
[trainInd, testInd] = crossvalind('HoldOut', size(X, 1), train_ratio);

X_train = X(trainInd, :);
Y_train = Y(trainInd, :);
X_test = X(testInd, :);
Y_test = Y(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_table' 和 'y_table' 转换为矩阵 'X' 和 'Y',然后按照之前的步骤进行分割数据集、拟合PLS模型、预测和计算R2和RMSE。

请确保你的数据表格 'x_table' 和 'y_table' 符合要求,其中每一列代表一个特征或变量。如果数据有缺失值或其他特殊情况,你可能需要在代码中进行相应的处理。


原文地址: https://www.cveoy.top/t/topic/bReB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录