Вот предложения, которые я пробовал, со ссылками:
- Избавление от категорий с одним экземпляром. В результате мои данные увеличились с 34 ярлыков до 32. Я позаботился о том, чтобы избавиться от двух столбцов, содержащих эти жанры. Я также разделил столбец жанров (от строки с разделителями до только жанров), чтобы избавиться от строк, содержащих редко встречающиеся жанры.
- Поскольку я разобрал столбец, я мог бы использовать послойное разделение тестового поезда, как вы видите здесь:
Код: Выделить всё
train, test = train_test_split(movies, random_state=42, train_size = 20000, test_size=1000, shuffle=True, stratify = movies['genre'])
< ol start="3">
[*]Я проверил, вернул ли np.unique(y_train) 0 и 1, что и произошло, то есть нет просто есть один класс.
[*](EDIT) Я также проверил форму своих x_train и y_train и получил
Код: Выделить всё
x_train.shapeЯ начинаю думать, что проблема в разреженных категориях, а не в коде. У меня более 300 000 строк, но в моих самых маленьких категориях всего 6 экземпляров. Просто невозможно использовать двоичную релевантность для прогнозирования в таких редких случаях, или есть другое потенциальное решение, которое я упускаю?
Подробнее здесь: https://stackoverflow.com/questions/788 ... ce-package