How can I use the output of a classifier as the input of other classifier?

2 views (last 30 days)
Hi! I have a dataset that contains 8 columns: 7 feature columns and 1 column indicating each row's class. There are 4 classes: A, B, C, and D. However, classes B and C are not well separated in the classification (I use Classification Learner in MATLAB), so the accuracy is stuck at 60%. If I combine B and C and then do a classification of the A, B+C, and D (so total 3 classes), the accuracy is 80%. However, I still need to separate the B and C. I thought that maybe I can build a classifier that classifies A, B+C, and D classes first, and then I will extract the predicted B+C class, and make another classifier that classifies B and C from the output of the former classifier. Is this logic working and executable in MATLAB? Thank you so much in advance.

Accepted Answer

Drew
Drew on 18 Oct 2022
Edited: Drew on 18 Oct 2022
Using the output of one classifier as the input of another classifier is called stacking. Stacking, bagging, and boosting are all methods for combining classifiers. The Classification Learner app does not currently support stacking. The Classification Learner app does support bagging and boosting ensemble methods, so it is recommended to try those, if you have not already, by trying "All Ensembles" in the Classification Learner App.
For examples of stacking at the MATLAB commandline, see:
For a third-party MATLAB toolbox for stacking, see Ensemble Learning Toolbox

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!