My question is about creating classifier chains
The problem I am working with is a multiclass problem where I have to assign one of 7 possible classes.
I started by training a single random forest based classifier for this purpose and the results were not that great. The expectation is about 95%+ for Precision, whereas I was at 79.
So I started working with training 7 different classifiers for each class. When I take class 1, for the purpose of training, I convert the class labels of other classes to ‘Other’.
By doing this process, the performance of the individual classifiers registered ~ 95%+.
Then I thought, may be lets chain the classifiers (in a waterfall manner) in a way that the most accurate model gets first attempt at classification, the next most accurate gets left over rows to make prediction on, the third most accurate one goes after that so on and so forth. The training process was still the same(as for 7 individual classifiers).
Concretely, let us say classifier 1 predicts on 100 rows and finds 10 to be of Class 1, the other 90 will be ‘Other’. Classifier 2 will then do predictions on the remaining 90 which will be marked as ‘Other’. Classifier 3 will then go on the left over and so on and so forth.
Problem is, the results are nowhere near the when they go individually. It is down to high 70s.
I am trying to figure out what might be the reason for the steep decline in performance and wondering if this is expected or I need to modify something to achieve somewhat comparative performance.
I appreciate any input/suggestions/comments.