I have multilabel labels. Elements in a label mean voting. Here is how labels look:
array([[ 4, 0, 0, 1, 3, 2, 0, 0],
[ 6, 0, 1, 1, 0, 0, 0, 0],
[ 5, 0, 0, 3, 1, 0, 0, 0],
[ 4, 0, 0, 4, 1, 0, 0, 0],
[ 9, 0, 0, 1, 0, 0, 0, 0],
[ 6, 0, 0, 1, 0, 0, 1, 1],
[ 2, 0, 0, 8, 0, 0, 0, 0],
[ 0, 10, 0, 0, 0, 0, 0, 0],
[ 0, 10, 0, 0, 0, 0, 0, 0],
[ 0, 0, 6, 0, 0, 0, 4, 0]])
And here is what I tried:
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
nn = mlb.fit_transform(labels_train)
nn[:10]
Output:
array([[1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0],
[1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],
[1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0],
[1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0]])
And when I tried inverse_transform()
:
zet = mlb.inverse_transform(nn)
zet[:10]
out:
[(0, 1, 2, 3, 4),
(0, 1, 6),
(0, 1, 3, 5),
(0, 1, 4),
(0, 1, 9),
(0, 1, 6),
(0, 2, 8),
(0, 10),
(0, 10),
(0, 4, 6)]
What am I doing wrong? Why is it showing unique values in ascending order?
MultiLabelBinarizer
, was suitable for SO, but the answer was simply "that's whatMultiLabelBinarizer
is supposed to do." $\endgroup$ – Ben Reiniger Sep 13 '20 at 14:17