Hyperparameter optimization fitrnet not working

6 vues (au cours des 30 derniers jours)
Riccardo
Riccardo le 13 Avr 2025
Commenté : Riccardo le 13 Avr 2025
Hi,
I'm trying to optimize the hyperparameters of a NN regression but I get an error regarding the inputs i give to the function fitrnet. I can't understand why since if I don't use ''OptimizeHyperparameters" but I specify the parameters my self the code works just fine.
%% training Neural Network regression
clear
clc
close all
load trainingSetReduced.mat
test = struct2table(test);
predictorNames = {'v_i', 'E_tip', 'rho_tip', 'v_tip', 'Y_tip', 'Radius', 'E_plate', 'rho_plate', 'v_plate', 'Y_plate', 'Insulator','BC','anvil'};
predictors = test(:, predictorNames);
responseNames = {'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12','F13','F14','F15','F16','F17','F18','F19','F20'};
response = test(:,responseNames);
X = table2array(predictors);
Y = table2array(response);
% Train the neural network
regressionNeuralNetwork = fitrnet(...
X, ...
Y, ...
'OptimizeHyperparameters', 'all', ...
'HyperparameterOptimizationOptions', struct( ...
'Optimizer', 'bayesopt', ...
'AcquisitionFunctionName','expected-improvement-plus', ...
'UseParallel', true, ...
'ShowPlots', true, ...
'Verbose', 1, ...
'MaxObjectiveEvaluations', 30));
Error using mlearnlib.internal.utils.ClassLabel (line 26)
You must pass class labels as a vector.

Error in classreg.learning.internal.ClassLabel

Error in classreg.learning.paramoptim.BayesoptInfo>numClasses (line 299)
N = numel(levels(classreg.learning.internal.ClassLabel(Y)));

Error in classreg.learning.paramoptim.BayesoptInfo/computeInMemoryDatasetStats (line 276)
this.NumClasses = numClasses(Response, ClassNamesPassed);

Error in classreg.learning.paramoptim.BayesoptInfo (line 243)
this = computeInMemoryDatasetStats(this, Predictors, Response, FitFunctionArgs, ObservationsInCols, IsRegression);

Error in classreg.learning.paramoptim.BayesoptInfoRNeuralNetwork (line 21)
this@classreg.learning.paramoptim.BayesoptInfo(Predictors, Response, FitFunctionArgs, false, false);

Error in classreg.learning.paramoptim.BayesoptInfo.makeBayesoptInfo (line 176)
Obj = ConstructorFcn(Predictors, Response, FitFunctionArgs);

Error in classreg.learning.paramoptim.fitoptimizing (line 30)
BOInfo = classreg.learning.paramoptim.BayesoptInfo.makeBayesoptInfo(FitFunctionName, Predictors, Response, FitFunctionArgs);

Error in fitrnet (line 148)
[this, varargout{1:nargout-1}] = classreg.learning.paramoptim.fitoptimizing("fitrnet",X,Y,varargin{:});
Does anybofy have some suggestions on how to solve the problem?
Thank you in advance

Réponse acceptée

the cyclist
the cyclist le 13 Avr 2025
"You can use an array ResponseVarName to specify multiple response variables. (since R2024b)"
but also
"Hyperparameter optimization options are not supported for multiresponse regression."
  1 commentaire
Riccardo
Riccardo le 13 Avr 2025

Thanks you! I completely missed that

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by