How to fix table variable related error?
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Sanchit
il 25 Lug 2023
Commentato: Mrutyunjaya Hiremath
il 27 Lug 2023
I am using the following matlab code
MdlReduced = fitrensemble(XX(:,{'td' 'ssr' 'tp'}),MPG,'Method','Bag', ...
'NumLearningCycles',200,'Learners',t);
But this is giving the following error
Error using ()
Unrecognized table variable name 'td'.
Please suggest me how to fix it?
Sanchit
2 Commenti
Saurabh Chaudhary
il 25 Lug 2023
can you provide data for XX? Also look the documentation of fitrensemble.
Risposta accettata
Mrutyunjaya Hiremath
il 25 Lug 2023
Here It is ...
clc;
clear all;
close all;
data = readtable('sample.csv');
X = data(:, 1:end);
% Get the current variable names
currentVariableNames = data.Properties.VariableNames;
% Define the new variable names (use as many names as you have variables)
newVariableNames = {'d2m','t2m','ev','pev','ssr','ssrd','tp','vpd','rh','gpp'};
% Create a new table with the new variable names
data = array2table(data{:,:}, 'VariableNames', newVariableNames);
t = templateTree('PredictorSelection','interaction-curvature','Surrogate','on', ...
'Reproducible',true); % For reproducibility of random predictor selections
MdlReduced = fitrensemble(data(:,{'d2m' 'ssr' 'tp'}),data(:,'gpp'),'Method','Bag', ...
'NumLearningCycles',200,'Learners',t);
%Compute the R2 of the reduced model.
yHatReduced = oobPredict(MdlReduced);
r2Reduced = corr(MdlReduced.Y,yHatReduced)^2
2 Commenti
Più risposte (1)
Steven Lord
il 25 Lug 2023
You expected for your table XX to contain a variable named td, but it doesn't. If you were trying to adapt another example to your needs perhaps the table in the example had that variable but yours does not. You can check if XX has that variable name:
listOfVariableNames = XX.Properties.VariableNames
Does listOfVariableNames contain 'td'?
ismember('td', listOfVariableNames)
Without seeing how you constructed XX it's difficult to offer concrete suggestions for how to solve the problem. If you read the data in from a file perhaps the file headers were not what you expected them to be? If you constructed that table variable using an expression [like td(:, 1)] instead of a plain variable name [like td] then the table variable would not be named using the variable name. Setting the variable name using renamevars could be an option in that scenario.
Vedere anche
Categorie
Scopri di più su System Commands in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!