I'm working with a dataset containing several classes. The largest class has over 500 samples, and the smallest classes have fewer than 10 samples. I know that you should perform upsampling inside the cross-validation loop to prevent data-leakage between folds... however this results in awful balanced-accuracy because there are so few samples for those tiny classes.
Would it be valid to perform a tiny amount of upsampling using a technique like SMOTE to lets say increase the number of samples in the smallest classes to something like 20 samples prior to cross validation and them perform further upsampling with SMOTE normally inside the cross-validation loop?