# How to manually balance unbalanced multi-class/multi-label data?

I have a multi-class and multi-label classification problem, i.e.: each sample can have more than one label associated to it and there is a total number of M possible labels.

e.g.:

• y[0] = [0]
• y[1] = [0, 1]
• y[2] = [1, 4, 3, 0]
• y[3] = [0, 1]
• ...
• y[100] = [1, 0, 3]

Counting the number of occurrences of each label, I can see that some labels are way more frequent than others. In the example above, for instance, 0 appears more often than 1, 3 and 4.

I can't figure out a smart (over-)sampling strategy to have a dataset where each label appears approximately the same number of times.

Any papers/idea on that?

• Count the frequencies of all the labels in a table and use these as weights? – user2974951 Oct 8 '18 at 6:35
• Here is a paper that discusses the same problem: Giraldo-Forero, et al (2013). Managing Imbalanced Data Sets in Multi-label Problems: A Case Study with the SMOTE Algorithm, J. Ruiz-Shulcloper and G. Sanniti di Baja (Eds.): CIARP 2013, Part I, LNCS 8258, pp. 334–342 (pdf) – nightrain Oct 15 '18 at 15:28