# Classification on severe Class Imbalance high dimensional data

Dear DataScience Community, I am working on class imbalance tabular data with high-dimension inputs. The tabular data is derived from the satellite data pixels, and I have inflated the train data dimension with derived indices calculated from available data. The accuracy measured with the F1 score is very low for the classes with low data counts. I've attached the sample data size.

I used MLP, CatBoostClassifier, and SVM for the task, with CatBoostClassifier giving me the best result. To address the data classification accuracy, I implemented oversampling, undersampling(losing a large chunk of features of classes with higher count), SMOTE, GSMOTE, and an algorithmic approach where I assigned weight during the model training part in CatBoostClassifier with class_weights parameter. The best result is when I used the algorithmic approach assigning the class_weights.

Still, the class with higher samples has higher F1 scores, and the performance of my model is not good in the undersampled classes. Gone through a lot of literature but didn't come to a valid conclusion on a better approach to deal with this level of imbalance and on classification model and evaluation metric selection too.

Next, I am planning to divide the data into chunks and train on a different model, and use a voting approach to classify and update the status after completion.

So, I would love to hear how the datascience community has tackled the situation to deal with this kind of data imbalance. Also, idea of any deep learning method suitable for the challenge?

• Instead of choosing the class with the highest confidence score, you could use some threshold for your poor performing classes. You will have to write some custom logic to deal with cases like multiple classes being above the threshold. Sep 13 at 6:52
• @MichaelHiggins, could you please explain more or provide some reference on how a threshold can be manually set for underrepresented classes? Sep 13 at 7:05
• I have only seen class specific thresholding for multi-label problems. I think it's worth a shot though. When multiple classes are above their threshold, you need some method to choose between them. I would try picking the rarest one. Or some function of rarity+how far above the threshold you are. Sep 13 at 18:58