Разрешение ValueError более 1 класса в пакете BinaryRelevancePython

Программы на Python
Anonymous
Разрешение ValueError более 1 класса в пакете BinaryRelevance

Сообщение Anonymous »

Я пытаюсь выполнить это руководство на своем собственном наборе данных. После бинаризации данных я попытался запустить пакет Binary Relevance, но получил ошибку: число классов должно быть больше одного; получил 1 класс
Вот предложения, которые я пробовал, со ссылками:
  • Избавление от категорий с одним экземпляром. В результате мои данные увеличились с 34 ярлыков до 32. Я позаботился о том, чтобы избавиться от двух столбцов, содержащих эти жанры. Я также разделил столбец жанров (от строки с разделителями до только жанров), чтобы избавиться от строк, содержащих редко встречающиеся жанры.
  • Поскольку я разобрал столбец, я мог бы использовать послойное разделение тестового поезда, как вы видите здесь:

Код: Выделить всё

train, test = train_test_split(movies, random_state=42, train_size = 20000, test_size=1000, shuffle=True, stratify = movies['genre'])
Я проверил длину столбцов с помощью len(np.unique(train['genre'])), который вернул 32.
< ol start="3">
[*]Я проверил, вернул ли np.unique(y_train) 0 и 1, что и произошло, то есть нет просто есть один класс.

[*](EDIT) Я также проверил форму своих x_train и y_train и получил

Код: Выделить всё

x_train.shape
= (20000, 10000) (10 000 — мое максимальное количество параметров) и y_train.shape = (20000, 32).


Я начинаю думать, что проблема в разреженных категориях, а не в коде. У меня более 300 000 строк, но в моих самых маленьких категориях всего 6 экземпляров. Просто невозможно использовать двоичную релевантность для прогнозирования в таких редких случаях, или есть другое потенциальное решение, которое я упускаю?

Подробнее здесь: https://stackoverflow.com/questions/788 ... ce-package

Вернуться в «Python»