ML — ГРУППИРОВКА НИГЕРИЙСКИХ ПЕСЕН
Классификация музыки по жанрам всегда была скорее искусством, чем наукой для музыкальных энтузиастов. Однако появление потоковых приложений с их продвинутыми алгоритмами списков воспроизведения создало процесс для этой задачи.
В этом упражнении используется неконтролируемый алгоритм обучения, известный как кластеризация K-средних, в сочетании с методом уменьшения размерности PCA для группировки нигерийских песен в поджанры из основного жанра «Afrobeats». Набор данных состоит из более чем 500 песен, выпущенных за 20-летний период (2000–2020 гг.). Аудио функции, такие как; для кластеризации использовались танцевальность, акустика, энергия, инструментальность, живость, громкость, речливость, темп и популярность.
Аудиофункции определяются как ряд количественных показателей, которые создают соответствующий и актуальный профиль песни. В то время как жанр определяется как группа песен, которые имеют общий стиль, форму, образец, а иногда и происхождение. Ознакомьтесь с определением этих функций на Spotify.
Первым этапом процесса машинного обучения был импорт соответствующих библиотек для кластеризации K-средних, а также загрузка набора данных. После этого был проведен разведочный анализ данных.
Следующим шагом была проверка коллинеарности аудиофункций с помощью функции corr(). Громкость и энергия имели высокую корреляцию 0,73, как показано ниже. В результате одна из объясняющих переменных (громкость) была отброшена.
Перед вводом данных в алгоритм был проведен быстрый анализ характеристик звука, как показано на графике ниже.
Видно, что нигерийские артисты больше всего акцентировали внимание на танцевальности и энергичности своих песен. Обе функции достигли пика на рубеже тысячелетий, причем первая резко упала в период с 2002 по 2005 год, а затем восстановилась.
Кроме того, в период с начала до середины 2000-х годов наблюдались всплески акустики, речи и живости, при этом в последующие годы эти характеристики оставались относительно стабильными. Наконец, можно увидеть, что инструментальность является наименее важным атрибутом в течение рассматриваемого периода.
Теперь к части проекта ML. Наиболее важной частью использования K-Mean является определение K, которое представляет собой количество кластеров, на которые необходимо разделить наблюдения. Я использовал следующие шаги, чтобы получить оптимальное количество кластеров (5).
- Стандартизация данных с помощью StandardScaler() перед помещением их в метод PCA()
- Определение количества основных компонентов с помощью pca.explained_variance_ratio_ для расчета вариации, объясняемой каждой функцией
- Преобразование данных, подогнанных на шаге 1
- Наконец, вычисление значения K, которое минимизирует инерцию, с использованием метода локтя.
После определения K песни делятся на 5 жанров. Композиции с похожими звуковыми характеристиками группируются в один жанр. Затем окончательный результат заносится в новый фрейм данных, содержащий названия жанров.
Последним этапом стал просмотр популярности жанров за 20-летний период. Неудивительно, что Afropop (141) и Afro Dancehall (259) являются самыми популярными жанрами, учитывая то значение, которое нигерийские музыканты придают танцевальности и энергии как характеристикам звука. У Alte (9) звука новой волны было наименьшее количество записей, в то время как у Afro RnB (86) было множество исполнителей. Самым сложным жанром для классификации был афро-фьюжн (35), потому что в этом жанре были исполнители, которые смешивали несколько жанров, например; Alte, Highlife и RnB для создания одного звука.
Фрагменты кода можно найти на моем сайте GitHub. Вы также можете подписаться на меня в LinkedIn, где я публикую информацию о своем путешествии в науку о данных.
Спасибо за ваше время.