MultiLabelBinarizer обратного трансфома - PullRequest
0 голосов
/ 12 февраля 2019

Я работаю над проблемой многослойной классификации, используя 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_ в приведенном выше примере?Есть ли какой-нибудь метод, которым мы можем вернуть форму предсказанных меток, равных истинным меткам?любая помощь в этом действительно приветствуется.

...