Understanding `get_combination_wise_output_matrix` when investigating a multi-label classification problem I am currently working on a multi-label classification problem. I am using the scikit-multilearn library (further reading here)

I understand that train / test split is important for these types of problems - ensuring label combinations are represented well in both (scikit-multilearn implements their own split method for this purpose). 

My current goal is to understand how this works so that I can evaluate it properly - I am reading from here primarily.

I am a little confused by the output of the get_combination_wise_output_matrix method. I understand at a high level it is giving me a breakdown of counts of label combinations for whatever order I specify.

Here is an example output I have observed:


The first question I have is does (5, 5): 1, mean anything other than the label at index 5 appears once, and this number is repeated for... reasons?

Additionally I haven't yet found any literature evaluating how / when to use different orders (my current approach to this is to qualitatively evaluate a few different options that seem reasonable given the specific problem I am trying (desperately) to solve

Thanks in advance for any help!
So order here means how many possible combinations of labels you want to compare (e.g., order=1 would by how often does each label appear, order=2 would be how often any two combinations of labels appear with values like 5,5 meaning "rows that only have a label in index 5 and no other label, and where the max order should be the number of labels you have --> 23 in your case. If you set order=23 and if you had a row that only had a label in index position 4, one of our results would be a vector of 4 repeated 23 times.

I think what's weird for me is that I would expect to see the "only one label in index 4" presented as [0, 0, 0, 0, 1, 0, ,,, 0, 0] (== len 24) instead of [4, 4, 4, ... 4, 4] (== len 24).

Odd presentation for sure. Kind of like sparse matrix notation.