Анализ с моделированием набора данных треков SpotifyPython

Программы на Python
Anonymous
Анализ с моделированием набора данных треков Spotify

Сообщение Anonymous »

Контекст: я прогнозирую 8 семейств музыкальных жанров, используя 114 000 треков Spotify, основываясь только на необработанной аудио-ДНК (танцевальность, акустика, энергия и т. д.).
Поворот сюжета: Моя базовая нейронная сеть достигла точности 82 %. Но после запуска теста на перестановку меток (случайное перемешивание меток) он все еще достиг 82%. Я понял, что 95% моих тестовых данных попали в категорию «Другое/Инди», поэтому модель просто лениво предсказывала класс большинства. Точность была полной ложью.
Опора: Я понял, что человеческие жанровые ярлыки ошибочны: песни могут быть как поп-музыкой, так и электронными. Я запустил неконтролируемый автоэнкодер (сжимающий 12 аудиофункций в узкое место 4D) и кластеризацию K-Means. Естественные аудиокластеры сильно переплетались друг с другом и не соответствовали человеческим ярлыкам. По этой причине я переключил свою архитектуру на подход с несколькими метками (сигмоидная активация + двоичная перекрестная энтропия), чтобы модель могла предсказывать перекрывающиеся жанры.
Там, где мне нужны ваши мысли:
  • Я применил веса классов, чтобы наказать модель за отсутствие жанров меньшинств. Мой Macro F1 сейчас составляет около 0,20-0,36, и отзыв для таких жанров, как рок/хип-хоп, ужасен. Есть ли какие-нибудь дополнительные советы по устранению этого крайнего дисбаланса, помимо весов базовых классов?
  • Кто-нибудь добился успеха в настройке порогов принятия решений для каждого класса, чтобы повысить запоминаемость классов меньшинств? Ссылка на мой код на данный момент

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