Я работаю над проблемой многослойной классификации, используя MultiLabelBinarizer для кодирования меток.Я попробовал процессы кодирования и декодирования в соответствии с примером, приведенным в https://scikit -learn.org / stable / modules / multiclass.html .Проблема в обратном преобразовании, повторяющиеся классы отсутствуют.Для ясности рассмотрим пример задачи классификации по нескольким меткам с пятью классами и четырьмя выборками.
label = np.array([[2, 3, 4,2,0], [3,1,2,4,2], [0, 1, 3,0,1], [0, 1, 2, 3, 4]])
mlb = MultiLabelBinarizer()
y = mlb.fit_transform(label)`
label_ = mlb.inverse_transform(y)
print(label_)
> [(0, 2, 3, 4), (1, 2, 3, 4), (0, 1, 3), (0, 1, 2, 3, 4)]
Обратите внимание, что номер класса 2
появился дважды в первой и второй выборках, а номер класса 1
появилсядважды в третьем примере.Но в расшифрованном варианте они появились один раз.Я предполагаю, что модель предсказывает определенную метку класса один раз и игнорирует, если она повторяется.Но что, если мы хотели бы сопоставление один к одному между label
и label_
в приведенном выше примере?Есть ли какой-нибудь метод, которым мы можем вернуть форму предсказанных меток, равных истинным меткам?любая помощь в этом действительно приветствуется.