How to define fitcensemble matlab function?
Show older comments
I am using following matlab code with latest MATLAB R2024b software
initIdx = 1:incrementSize;
Xinit = trainFeatures(initIdx,:);
Yinit = trainLabels(initIdx);
disp(size(Xinit));
disp(size(Yinit));
% Train initial batch model using fitcensemble
t = templateTree('MaxNumSplits',20); % You can adjust as needed
Mdl = fitcensemble(Xinit, Yinit, ...
'Method', 'Bag', ...
'NumLearningCycles', 100, ...
'Learners', t, ...
'OOBPrediction', 'on');
% Convert to incremental model
IncMdl = incrementalLearner(Mdl);
it is displaying [the following] error
3048 2
3048 1
Error using classreg.learning.FitTemplate/fillIfNeeded (line 734)
OOBPrediction is not a valid parameter name.
Error in classreg.learning.FitTemplate.make (line 140)
temp = fillIfNeeded(temp,type);
^^^^^^^^^^^^^^^^^^^^^^^
Error in fitensemble (line 363)
temp = classreg.learning.FitTemplate.make(method,'nlearn',nlearn,'learners',learners,varargin{:});
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error in fitcensemble (line 215)
this = fitensemble(X, Y, Method, NumLearningCycles, Learners, ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mdl = fitcensemble(Xinit, Yinit, ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I request you to please suggest me how to resolve this issue.
10 Comments
Hi Aksh,
The error 'OOBPrediction is not a valid parameter name' indicates that MATLAB 'fitcensemble' method does not have any property named 'OOBPrediction'.
You can refer to the following MATLAB documentation on 'fitensenmle' method to check all the supported input arguments.
Feel free to mention if you have any specific requirement.
Walter Roberson
on 18 Dec 2024
OOBPrediction is a treebagger parameter
Aksh Kumar
on 18 Dec 2024
Edited: Aksh Kumar
on 18 Dec 2024
Abhaya
on 18 Dec 2024
The error occurs because the MATLAB 'incrementalLearner' function expects a Linear regression model as an input.
The fitcensemble function, used to create ensemble classifiers, does not natively support incremental learning. This means that each time you call fitcensemble(), the ensemble model is rebuilt from scratch rather than adding new learners to an existing ensemble.
Aksh Kumar
on 18 Dec 2024
Walter Roberson
on 18 Dec 2024
There is no way to do incremental learning on a fitcensemble model.
Aksh Kumar
on 19 Dec 2024
Edited: Walter Roberson
on 19 Dec 2024
Walter Roberson
on 19 Dec 2024
Edited: Walter Roberson
on 19 Dec 2024
There is simply no function incrementalClassifictionEnsemble() .
There are functions incrementalDriftAwareLearner and incrementalClassificationKernel and incrementalClassificationLinear and incrementalClassificationECOC and incrementalClassificationNaiveBayes and incrementalConceptDriftDetector -- but there is no incrementalClassificationEnsemble()
There is no way to convert a classification ensemble to incremental learning.
Aksh Kumar
on 19 Dec 2024
Edited: Aksh Kumar
on 19 Dec 2024
Walter Roberson
on 19 Dec 2024
TreeBagger() as a function returns a TreeBagger object https://www.mathworks.com/help/stats/treebagger.html
There are no functions to convert TreeBagger objects to incremental learning objects.
The documentation at https://www.mathworks.com/help/stats/incremental-learning-overview.html#mw_b9f908d5-71f7-419a-9f6c-386f264864b9 describes the objects that can be converted to incremental learning.
- ClassificationECOC and CompactClassificationECOC
- ClassificationKernel
- ClassificationSVM and CompactClassificationSVM
- ClassificationLinear
- ClassificationNaiveBayes
- RegressionKernel
- RegressionSVM and CompactRegressionSVM
- RegressionLinear
Notice that TreeBagger() and ClassificationBaggedEnsemble and ClassificationEnsemble and ClassificationPartitionedEnsemble are not on this list.
Answers (0)
Categories
Find more on Classification Ensembles in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!