Undefined function 'round' for input arguments of type 'categorical' error
이전 댓글 표시
Hello experts,
I was trying to perform the example of function fitclinear described in the matlab help documentation, and I got an error.
Here is the described the example:
load nlpdata
X = X';
Ystats = Y == 'stats';
rng default
Mdl = fitclinear(X,Ystats,'ObservationsIn','columns','Solver','sparsa',...
'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',...
struct('AcquisitionFunctionName','expected-improvement-plus'))
Here the error that I got:
Undefined function 'round' for input arguments of type 'categorical'.
Error in iscategorical (line 26)
if size(mat, 1) == 1 && all(round(mat) == mat)
Error in classreg.learning.paramoptim.prepareArgValue (line 12)
elseif iscategorical(elt)
Error in classreg.learning.paramoptim.BayesoptInfo.argsFromTable (line 151)
classreg.learning.paramoptim.prepareArgValue(XTable{1,v})}];
Error in classreg.learning.paramoptim.BayesoptInfo/updateArgsFromTable (line 56)
ArgsFromTable = classreg.learning.paramoptim.BayesoptInfo.argsFromTable(XTable);
Error in classreg.learning.paramoptim.createObjFcn/theObjFcn (line 17)
NewFitFunctionArgs = updateArgsFromTable(BOInfo, FitFunctionArgs, XTable);
Error in BayesianOptimization/callObjNormally (line 2184)
Objective = this.ObjectiveFcn(conditionalizeX(this, X));
Error in BayesianOptimization/callObjFcn (line 2145)
= callObjNormally(this, X);
Error in BayesianOptimization/performFcnEval (line 2128)
ObjectiveFcnObjectiveEvaluationTime, this] = callObjFcn(this, this.XNext);
Error in BayesianOptimization/run (line 1836)
this = performFcnEval(this);
Error in BayesianOptimization (line 450)
this = run(this);
Error in bayesopt (line 287)
Results = BayesianOptimization(Options);
Error in classreg.learning.paramoptim.fitoptimizing>doBayesianOptimization (line 182)
OptimizationResults = bayesopt(objFcn, VariableDescriptions, ...
Error in classreg.learning.paramoptim.fitoptimizing (line 136)
[OptimizationResults, XBest] = doBayesianOptimization(objFcn, BOInfo, VariableDescriptions,
HyperparameterOptimizationOptions);
Error in fitclinear (line 218)
[varargout{1:nargout}] = classreg.learning.paramoptim.fitoptimizing('fitclinear',X,y,varargin{:});
Any suggestions will be helpful.
Thanks
댓글 수: 5
dpb
2019년 5월 26일
What does
whos X
return? categorical class, I presume?
Try
Mdl = fitclinear(double(X),Ystats,'ObservationsIn','columns','Solver','sparsa',...
...
instead and see if joy ensues. It surely is an irritation when examples don't work either because they simply were pasted in from non-working code or TMW has made changes in other routines that may have been allowable in earlier versions and no longer are.
Walter Roberson
2019년 5월 27일
I did not encounter this problem when I tested in R2019a on my Mac.
Walter Roberson
2019년 5월 27일
What shows up for
which -all iscategorical
The main iscategorical() routine is quite short. The one for classreg.learning.internal.ClassLabel does not have any round() in it, at least in R2019a.
abdulkawi alareefi
2019년 5월 27일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!