Как вы заявили, исходная форма меток - (83292, 5)
, и как только вы применили MultiLabelBinarizer
, она стала (5, 18)
.
train_test_split(X, y)
функция ожидает, что X и y должны иметь одинаковые строки . Например: 83292
точек данных, доступных в вашей X
, и соответствующая метка точек данных должна быть доступна в вашей переменной y
. Следовательно, в вашем случае это должно быть X
, а y
форма должна быть (83292, 15)
и (83292, 18)
.
Попробуйте следующее: Ваш результат MultiLabelBinarizer
имеет неправильный размер здесь . Итак, если ваш labels
является объектом фрейма данных, вы должны применить mlb.fit_transform(labels.values.tolist())
. это приведет к тому же количеству строк, что и вывод здесь 83292
.
Пример ваших меток должен иметь следующий формат:
ваш y
ввод может быть например, list of list
или фрейм данных с one column which having list of values
. Убедитесь, что у X и y одинаковое количество строк. Вы можете представить переменную multi-label multi-class y
, как показано ниже. Или dataframe.shape должен быть (no_of_rows, 1)
[[1, 1, 25, 0, 0],
[1, 1, 25, 0, 0],
[1, 1, 25, 0, 0],
[1, 1, 25, 0, 0],
[1, 1, 25, 0, 0],
[3, 5, 50, 0, 0],
[3, 5, 50, 0, 0],
[3, 5, 50, 0, 0],
[3, 5, 50, 0, 0],
[3, 5, 50, 0, 0]]