Spotify EDA article cover

Machine Learning: Как да анализираме музиката, която слушаме в Spotify?

Автор: Десислава Христова

Идеята за тази статия дойде благодарение на моето любопитство към музиката, която слушам в Spotify. Исках да разбера колко често пускам определени песни, кои артисти и жанрове като цяло слушам най-много и дали наистина са тези, които аз си мисля, че са.

С практическа задача ще ви покажа как можете да анализирате музиката, която слушате в Spotify, с помощта на езика за програмиране Python и неговите библиотеки за анализ на данни.

Извадката, която ще използваме, съдържа 1846 произволно избрани песни, които съм слушала в Spotify за периода 28 юни 2015 – 26 януари 2021 година.

Ще се стремим да намерим отговор на следните въпроси:

  • Предимно каква музика е слушана и кога?
  • Има ли връзка между броя слушания и популярността на песните?
  • Кои са най-слушаните жанрове, албуми, артисти и песни?
  • Има ли зависимост между отделните числови характеристики?

Преглед на данните

Данните, с които ще работим, са предварително изчистени. Съдържат 15 числови променливи и 10 категорийни.

Можете да изтеглите файла с първоначалната обработка от тук.

5 случайно избрани реда от данните изглеждат по следния начин:

 artisttitlealbumgenreyearaddedlast_listenedlistensbpmnrgydncedBlivevalduracousspchpopadd_dayadd_monthadd_yearll_dayll_monthll_yearll_time
793Ben PlattTemporary LoveSing to Me Insteadhollywood20192019-12-022019-11-28 21:07:0030895163-812142195135521220192811201921:07:00
493Loving CaliberWe're In This Together NowWhen We Were Youngerscandipop20172020-04-162020-04-19 13:12:0041442249-151216233783401642020194202013:12:00
554Isak DanielsonHold My HandYoursindie cafe pop20182020-03-292020-03-29 16:15:00101223266-101323201404512932020293202016:15:00
1506Hayley KiyokoCliffs EdgeThis Side of Paradise - EPdance pop20152016-08-222019-07-22 14:21:0022806069-7106521305512282016227201914:21:00
1343TEEN TOPRockingTEEN TOP CLASS ADDITIONk-pop20132016-08-252018-06-27 07:36:00341289870-31179193210302582016276201807:36:00

Предимно каква музика е слушана и кога?

За създаване на визуализациите ще използваме библиотеката Plotly на Python.

1/ Преглед на разпределения на числови характеристики

Ако видим как са разпределени данните, ще можем да добием представа за това какви песни предимно са слушани. За всяка от числовите характеристики без тези, свързани с дати като година, месец, дни и т.н., ще създадем хистограма.

Първите 3 променливи са брой слушания (listens), удари в минута (bpm) и енергия (nrgy), показваща колко е забързана и шумна дадена песен. От хистограмите става ясно, че в повечето случаи една песен е слушана предимно до 4 пъти. Има и такива моменти, в които една и съща песен е пускана над 300+ пъти. Повечето песни са с около 100-104 удара в минута и са по-енергични.

Най-вече се слушат такива, на които може да се танцува, с от -6 до -4 dB сила на звука. Също така много от тях не са от концерти на живо, а са студио версии на песните.

Валентността (val) е доста равномерна. Това е метрика, която е със стойности от 0 до 100 и показва до колко е позитивна определена песен. Когато стойността е по-близо до 0 е тъжна, а ако е весела, е със стойност близо до 100. Има 13 песни, които са много тъжни и 21, които са много весели. Повечето стойности са в границите на 30-40 валентност и 60-67 – по около 120-150 песни. Предимно са с продължителност (dur) около 2 минути и доста от тях не са акустични.

В много от песните няма реч и предимно се слушат такива с популярност около 40 по скалата на Spotify, която е между 0 и 100. Най-популярните песни са със стойности на тази променлива близо до 100, а по-малко популярните са близо до 0.

2/ Средна популярност на песните

Ще изградим 2 линейни диаграми, показващи средната популярност на песните през отделните години. На едната визуализация са използвани годините, когато последно са слушани песните, а на другата годините, в които те са добавени в любими.

И на двете визуализации средната популярност е най-висока през 2018-та година. Според последно слушане на песните, тя е 46, а според година на добавяне на песните в любими е 53.

3/ Брой слушания през различните години

Следващите линейни диаграми, които ще изградим, ще представим колко пъти са слушани песните по година на последно слушане, година на добавяне и когато е издадена песента.

Най-много са слушани и добавяни песни в любими през 2020-та година, като те са най-вече от 2017-та и 2018-та година.

С групирана стълбовидна диаграма можем да видим по месеци за 2018-та, 2019-та и 2020-та година как са разпределени слушанията.

На групираната стълбовидна диаграма по година на последно слушане на песните отново се вижда, че през 2020-та година броят на слушанията е най-голям.

Можем да ги филтрираме и по месеци и дни само за 2020-та година.

Предимно към края на всеки месец има най-много слушания.

Има ли връзка между броя слушания и популярността на песните?

Необходимо е да филтрираме данните само по песни, които са с популярност над 80, след което можем да създадем една диаграма на разсейването, за да видим дали има връзка между броя слушания и популярността на песните.

Можем да кажем, че слушането на песните може би не зависи толкова от популярността им, тъй като броя на слушания за тях не е толкова голям. Има само една песен, която е популярна и е слушана 438 пъти. Останалите са най-вече с между 0 и 50 слушания.

Кои са най-слушаните песни, албуми, артисти и жанрове?

За да отговорим на този въпрос, ще създадем няколко стълбовидни диаграми.

Първо ще визуализираме 10-те най-слушани песни и ще ги подредим в низходящ ред.

На първо място в данните е pop песента Lewis Capaldi – Someone You Loved с 545 слушания, а на 10-то е k-pop песента Blackpink – Forever Young с 311 слушания. Тук прави впечатление и песента от диаграмата на разсейването с популярните песни, която създадохме по-рано – Billie Eilish – ocean eyes. Тя е четвъртата най-слушана песен.

На следващата стълбовидна диаграма ще видим артистите, чиито песни са пускани най-често.

С най-много слушания е групата Chase Atlantic – 2655. Заедно с тях, песни на още 4 артисти – Sabrina Carpenter, Jessica, Dermot Kennedy и Blackpink са в 10-те най-слушани.

На следващата стълбовидна диаграма ще видим албумите, които са слушани най-много.

На първо място е албумът I met you when I was 18. (the playlist) на Lauv. Артистът е на 3-то място в данните по брой слушания. Почти всички албуми, които са представени на тази визуализация, са на артисти, които са в 10-те най-слушани.

Нека сега да видим кои са 5-те най-слушани жанрове.

С най-много слушания е жанра k-pop, а топ песен от него е Jessica – Wonderland. Тя е на 2-ро място в диаграмата с най-слушани песни.

Има ли зависимост между отделните числови характеристики?

С корелационна матрица можем да видим дали има връзка между числовите променливи в извадката.

От визуализацията става ясно, че сила на звука (dB) и енергия (nrgy) имат положителна корелация от 0.8, а акустичност (acous) и енергия (nrgy) имат отрицателна корелация от -0.7

Връзката между тези променливи се вижда и на диаграмите по-надолу.

Размера на балончетата се определя от броя слушания на песните. Тези, които са пускани най-много пъти, веднага се отличават. Видяхме ги и в 10-те най-слушани песни.

Извод

Благодарение на направения анализ, можем да кажем, че са слушани най-много поп песни, които в повечето случаи са бързи, весели и може да се танцува на тях. Има определени артисти и песни, които се отличават в почти всички визуализации, защото са слушани много голям брой пъти. За някои от тях определено останах изненадана.

Следваща стъпка, която може да се предприеме от тук нататък, е да се изгради модел за машинно обучение. Може да се направи например клъстерен анализ, които да групира сходните песни и така да се създават плейлисти или можем да генерираме асоциативни правила, за да видим кои песни след кои най-често се слушат. Това би било полезно ако искаме да правим предложения за песни.

Цялостния пример можете да изтеглите от тук.

Ако искате да научите за проучвателния анализ на данни, можете да прочетете в следната статия: Machine Learning: Какво включва проучвателният анализ на данни?

Искате да научите повече за Python?

Включете се в курса по програмиране с Python.

Споделяне чрез:

Share on facebook
Facebook
Share on pinterest
Pinterest
Share on linkedin
LinkedIn
Share on email
Email
Share on telegram
Telegram

Подобни статии

survey data analysis cover
Програмиране

Machine Learning: Как да анализираме и групираме данни от анкетно проучване?

Автор: Десислава Христова Анкетното проучване е често използван метод при пазарните изследвания, чрез който се събират данни от определена група хора (респонденти) с цел да

Прочетете повече »
За да предложим по-висококачествена услуга сайта ни използваме бисквитки (cookies)