окончательный анализ песен для 50 ведущих исполнителей

1656590324 okonchatelnyj analiz pesen dlya 50 vedushhih ispolnitelej

от Джеймса Ли

1*VoHx2GEJLinEv3AWbxHNOw
Источник: https://www.talenthouse.com/i/create-a-video-for-spotify/submissions/popular

У каждого исполнителя есть свои уникальные музыкальные стили. От Эда Ширана, посвящающего свою жизнь акустической гитаре, до Дрейка, владеющего искусством рэпа. От Адель, умеющей совмещать безумные высокие ноты в своих поп-балладах, до Кайго, создающего магию EDM на своем диджейском сете. Музыка – это творчество, оригинальность, вдохновение и чувство, и она идеальный шлюз для объединения людей через различия.

Spotify – самый доступный сервис потоковой передачи музыки. С более чем 35 миллионов песен и 170 миллионов активных пользователей ежемесячно, это идеальная платформа для музыкантов, чтобы охватить свою аудиторию. В приложении музыку можно просматривать или искать по различным параметрам, таким как исполнители, альбом, жанр, список воспроизведения или лейбл звукозаписи. Пользователи могут создавать, редактировать и делиться списками воспроизведения, делиться треками в социальных сетях и создавать списки воспроизведения с другими пользователями.

Кроме того, Spotify запустил разнообразные интересные списки воспроизведения, созданные специально для своих пользователей, из которых я больше увлекаюсь этими тремя:

  • Откройте для себя Weekly: еженедельный генерируемый список воспроизведения (обновляется по понедельникам), который дает пользователям два часа индивидуальных музыкальных рекомендаций, смешивая личный вкус пользователя с песнями, которые нравятся подобным слушателям.
  • Освободите радар: персонализированный список воспроизведения, позволяющий пользователям быть в курсе новой музыки, выпущенной исполнителями, которых они чаще всего слушают.
  • Ежедневная смесь: серия списков воспроизведения, которые имеют «почти бесконечное воспроизведение» и смешивают любимые треки пользователя с новыми рекомендованными песнями.

Недавно я нашел серию плейлистов This Is. Одна из лучших оригинальных функций Spotify, This Is обеспечивает главное обещание революции потоковой передачи — канонизацию и сохранение репертуаров великих исполнителей для будущих поколений, которые они могут выявить и оценить.

Каждый из них посвящен разному легендарному артисту, описывающему самые высокие моменты культовых дискографий. «Это: Канье Вест». «Это: Maroon 5». «Это: Элтон Джон». Spotify предоставил ярлык, предоставив нам кураторские списки лучших песен от лучших исполнителей.

Что мы здесь рассмотрим

Цель этого проекта – проанализировать музыку, которую создают разные исполнители на Spotify. Основное внимание будет сосредоточено на раскрытии музыкального вкуса 50 разных исполнителей из широкого диапазона жанров. На протяжении всего процесса я также выявляю разные группы исполнителей, имеющих схожий музыкальный стиль.

Для исследования я получу доступ к API Spotify, который предоставляет данные из музыкального каталога Spotify. К нему можно получить доступ через стандартные HTTPS-запросы к конечной точке API.

API Spotify предоставляет, среди прочего, информацию о треке для каждой песни, включая аудио статистику, например танцевальность, инструментальностьили темп. Каждая функция измеряет аспект песни. Подробную информацию о том, как вычисляется каждая функция, можно найти на веб-сайте API Spotify. Фрагменты кода в этой статье могут быть несколько сложными для понимания, особенно для начинающих данных, и будьте со мной.

Вот краткий итог моего подхода:

  • Получите данные из API Spotify.
  • Обрабатывайте данные для получения аудио-функций для каждого исполнителя.
  • Визуализируйте данные с помощью D3.js.
  • Примените группировку k-средних, чтобы разделить художников на разные группы.
  • Проанализируйте каждую особенность всех художников.

Давайте теперь получим информацию об аудиофункциях из списков воспроизведения This Is 50 различных исполнителей на Spotify.

1*BVAvpWWBCjB0xHPM_HC1BQ
Источник: https://blog.prototypr.io/have-you-heard-about-the-spotify-web-api-8e8d1dac9eaf

Получение данных

Первым шагом была регистрация моей программы на веб-сайте API и получение ключей (Client ID и Client Secret) для будущих запросов.

Веб-API Spotify имеет различные URI (унифицированные идентификаторы ресурсов) для доступа к информации о списках воспроизведения, исполнителях или треках. Следовательно, процесс получения данных необходимо разделить на два основных этапа:

  • получить серию плейлистов This Is для нескольких музыкантов.
  • получить аудио-функцию для треков списка воспроизведения каждого исполнителя.

Учетные данные веб-API

Сначала я создал две переменные для Client ID и Client Secret учетные данные.

spotifyKey <- "YOUR CLIEND ID"spotifySecret <- "YOUR CLIENT SECRET"

После этого я запросил маркер доступа, чтобы авторизовать свое приложение на получение и управление данными Spotify.

library(Rspotify)library(httr)library(jsonlite)spotifyEndpoint <- oauth_endpoint(NULL, "https://accounts.spotify.com/authorize","https://accounts.spotify.com/api/token")
spotifyToken <- spotifyOAuth("Spotify Analysis", spotifyKey, spotifySecret)

Серия плейлистов «Это».

Первым шагом было вытащить серию художников This Is, чтобы получить URI для каждого из них. Вот 50 музыкантов, которые я выбрал, используя их популярность, современность и разнообразие в качестве основных критериев:

  • Поп: Тейлор Свифт, Ариана Гранде, Шон Мендес, Марун 5, Адель, Джастин Бибер, Эд Ширан, Джастин Тимберлейк, Чарли Пут, Джон Майер, Лорд, Пятая Гармония, Лана Дель Рэй, Джеймс Артур, Зара Ларссон, Пентатоникс.
  • Хип-хоп/рэп: Кендрик Ламар, Пост Мэлоун, Дрейк, Канье Вест, Эминем, Future, 50 Cent, Лил Уэйн, Виз Халифа, Снуп Догг, Маклмор, Джей-Зи.
  • R&B: Бруно Марс, Бейонсе, Энрике Иглесиас, Стиви Уандер, Джон Ледженд, Алисия Киз, Ашер, Рианна.
  • EDM / Хаус: Kygo, The Chainsmokers, Avicii, Marshmello, Calvin Harris, Martin Garrix.
  • Рок: Coldplay, Элтон Джон, One Republic, The Script, Джейсон Мраз.
  • ДжазАктеры: Фрэнк Синатра, Майкл Бубл, Нора Джонс.
1*-IcwnYFk40BgckbA4uGbyg
Источник: http://www.thedrum.com/news/2017/11/29/spotify-wraps-up-2017-making-humorous-goals-2018-using-its-data-and-artists

В основном я перешел в отдельный список воспроизведения каждого музыканта, скопировал URI, сохранил каждый URI в файле .csv и импортировал файлы .csv в R.

library(readr)
playlistURI <- read.csv("this-is-playlist-URI.csv", header = T, sep = ";")

К каждому URI списку воспроизведения я применил getPlaylistSongs из пакета “RSpotify” и хранил информацию о списке воспроизведения в пустом фрейме data.frame.

# Empty dataframePlaylistSongs <- data.frame(PlaylistID = character(),                            Musician = character(),                            tracks = character(),                            id = character(),                            popularity = integer(),                            artist = character(),                            artistId = character(),                            album = character(),                            albumId = character(),                            stringsAsFactors=FALSE)
# Getting each playlistfor (i in 1:nrow(playlistURI)) {  i <- cbind(PlaylistID = as.factor(playlistURI[i,2]),             Musician = as.factor(playlistURI[i,1]),             getPlaylistSongs("spotify",                              playlistid = as.factor(playlistURI[i,2]),                              token=spotifyToken))  PlaylistSongs <- rbind(PlaylistSongs, i)} 

Функции аудио

Сначала я написал формулу (getFeatures), извлекающий звуковые функции для любого конкретного идентификатора, сохраненного как вектор.

getFeatures <- function (vector_id, token) {  link <- httr::GET(paste0("   vector_id), httr::config(token = token))  list <- httr::content(link)  return(list)}

Дальше я включил getFeatures в другой формуле (get_features). Последняя формула извлекает звуковые характеристики вектора идентификатора трека и возвращает их в data.frame.

get_features <- function (x) {  getFeatures2 <- getFeatures(vector_id = x, token = spotifyToken)  features_output <- do.call(rbind, lapply(getFeatures2$audio_features, data.frame, stringsAsFactors=FALSE))}

Используя формулу, созданную выше, я сумел извлечь звуковые функции для каждого трека. Для этого мне нужен вектор, содержащий каждый идентификатор трека. Ограничение скорости API Spotify составляет 100 треков, поэтому я решил создать вектор с идентификаторами треков для каждого музыканта.

Дальше я применил get_features формула для каждого вектора, получая звуковые характеристики для каждого музыканта.

После этого я объединил аудиофункцию data.frame каждого музыканта в новый, all_features. Он содержит аудио-функции для всех треков в списке воспроизведения This Is каждого музыканта.

library(gdata)
all_features <- combine(TaylorSwift,ArianaGrande,KendrickLamar,ShawnMendes,Maroon5,PostMalone,Kygo,TheChainsmokers,Adele,Drake,JustinBieber,Coldplay,KanyeWest,BrunoMars,EdSheeran,Eminem,Beyonce,Avicii,Marshmello,CalvinHarris,JustinTimberlake,FrankSinatra,CharliePuth,MichaelBuble,MartinGarrix,EnriqueIglesias,JohnMayer,Future,EltonJohn,FiftyCent,Lorde,LilWayne,WizKhalifa,FifthHarmony,LanaDelRay,NorahJones,JamesArthur,OneRepublic,TheScript,StevieWonder,JasonMraz,JohnLegend,Pentatonix,AliciaKeys,Usher,SnoopDogg,Macklemore,ZaraLarsson,JayZ,Rihanna)

Наконец я вычислил среднее значение звуковых характеристик каждого музыканта с помощью aggregate функция. Полученный data.frame содержит звуковые характеристики каждого музыканта, выраженные как среднее значение треков в соответствующих списках воспроизведения.

mean_features <- aggregate(all_features[, c(1:11,17)], list(all_features$source), mean)
names(mean_features) <- c("Musician", "danceability", "energy", "key", "loudness", "mode", "speechiness", "acousticness", "instrumentalness", "liveness", "valence", "tempo", "duration_ms")

На рисунке ниже показано подмножество mean_features data.frame, для справки.

1*wGUAA2LF3YZCDxRR0tkniw

Описание функций аудио

Ниже приведено описание каждой функции из руководства Spotify Web API:

  • Танцевальность: описывает пригодность трека для танцев Это основано на сочетании музыкальных элементов, включая темп, стабильность ритма, силу удара и общую регулярность. Значение 0,0 является наименее танцевальным, а 1,0 наиболее танцевальным.
  • Энергия: мера от 0,0 до 1,0 и представляет собой перцептивную степень интенсивности и активности. Как правило, энергичные треки ощущаются быстро, шумно и шумно. Например, дет-металл обладает высокой энергией, тогда как прелюдия Баха имеет низкие баллы по шкале. Характеристики восприятия, способствующие этому атрибуту, включают в себя динамический диапазон, воспринимаемую громкость, тембр, скорость начала и общую энтропию.
  • Ключ: ключ, в котором находится трек Целые числа отображаются на высоту звука с помощью стандартной нотации класса высоту звука. Например, 0 = C, 1 = C♯/D♭, 2 = D и так далее.
  • Громкость: общая громкость трека в децибелах (дБ). Значения громкости усреднены по всей дорожке и полезны для сравнения относительной громкости треков. Громкость – это качество звука, которое является основным психологическим коррелятом физической силы (амплитуды). Типичные значения колеблются от –60 до 0 дБ.
  • Режим: указывает на модальность (мажорную или минорную) трека, тип строя, из которого происходит его мелодичный смысл. Мажор представлен 1, а минор – 0.
  • Вещание: функция речи определяет наличие произнесенных слов в дорожке. Чем больше исключительно похожа на речь запись (например, ток-шоу, аудиокнига, стихи), тем ближе к 1,0 значения атрибута. Значения выше 0,66 описывают треки, предположительно полностью состоящие из произнесенных слов. Значения от 0,33 до 0,66 описывают треки, которые могут содержать как музыку, так и речь, как в разделах, так и послойно, включая такие случаи, как рэп-музыка. Значения ниже 0,33, скорее всего, представляют инструментальную музыку и другие треки, не похожие на речь.
  • Акустичность: степень доверия от 0,0 до 1,0 относительно того, является ли трек акустическим. 1.0 означает высокую уверенность в том, что акустический трек.
  • Инструментальность: определяет, не содержит ли композиция вокала. Звуки Ох и Ааа в этом контексте рассматриваются как инструментальные. Рэп или разговорные композиции явно «вокальные». Чем ближе значение инструментальности к 1,0, тем больше вероятность, что трек не содержит вокального содержимого. Значения выше 0,5 предназначены для представления инструментальных композиций, но уверенность возрастает, когда значение приближается к 1,0.
  • Живость: определяет наличие аудитории в записи. Более высокие значения живости представляют повышенную вероятность того, что трек был выполнен вживую. Значение выше 0,8 обеспечивает большую вероятность работы трека.
  • Валентность: показатель от 0,0 до 1,0, описывающий музыкальный позитив, передающий трек Композиции с высокой валентностью звучат более положительно (например, радостно, весело, эйфорически), тогда как треки с низкой валентностью звучат более отрицательно (например, грустный, подавленный, злой).
  • Темп: общий оцененный темп трека в ударах в минуту (BPM). В музыкальной терминологии темп – это скорость или темп определенной пьесы, вытекающий непосредственно из средней продолжительности удара.
  • Продолжительность_мс: продолжительность дорожки в миллисекундах
1*q2q_HGP0kkDt3XFNvsTjrQ
Источник: https://www.engadget.com/2018/02/05/spotify-recommendation-tech-nelson-custom-playlists/

Визуализация данных

Радарные карты

Радарная диаграмма полезна более визуальному сравнению музыкальной атмосферы этих музыкантов. Первая визуализация представляет собой реализацию R радарной диаграммы из библиотеки JavaScript chart.js и оценивает аудио-функции для десяти выбранных музыкантов.

Для построения графика я нормализовал значение тональности, громкости, темпа и duration_ms от 0 до 1. Это помогает сделать диаграмму более понятной и читабельной.

mean_features_norm <- cbind(mean_features[1], apply(mean_features[-1],2, function(x){(x-min(x))/diff(range(x))}))

Ладно, давайте построим эти интерактивные радарные диаграммы группами по десять музыкантов. Каждая диаграмма отображает метки набора данных, когда вы наводите курсор на каждую радиальную линию, показывая значение для выбранного объекта. Код ниже подробно описывает процесс создания радарной диаграммы для первой партии из десяти музыкантов. Код для других четырех партий был пропущен, но отображаются радарные диаграммы.

Партия 1: Тейлор Свифт, Ариана Гранде, Кендрик Ламар, Шон Мендес, Марун 5, Пост Мэлоун, Кайго, The Chainsmokers, Адель, Дрейк

1*dbjyWWWkCpbnz5xIRuDudA

Партия 2: Джастин Бибер, Колдплей, Канье Вест, Бруно Марс, Эд Ширан, Эминем, Бейонсе, Авичи, Маршмелло, Келвин Харрис

1*eiqCu3agTApjiJuTDNwnTA

Партия 3: Джастин Тимберлейк, Фрэнк Синатра, Чарли Пут, Майкл Бубл, Мартин Гаррикс, Энрике Иглесиас, Джон Майер, Future, Элтон Джон, 50 Cent

1*tHQk1q8_ND7ltSRSarVrNw

Партия 4: Лорд, Лил Уэйн, Виз Халифа, Пятая Гармония, Лана Дель Рэй, Нора Джонс, Джеймс Артур, One Republic, Сценарий, Стиви Уандер

1*EtNTSS3fVjDPi0HKAw3ANA

Партия 5: Джейсон Мраз, Джон Ледженд, Пентатоник, Алисия Киз, Ашер, Снуп Догг, Маклмор, Зара Ларссон, Джей-Зи, Рианна

1*i2DYW2eSNlKybqXOJRtntg

Кластерный анализ

Другой способ выяснить различия между этими музыкантами в музыкальном репертуаре – объединить их в кластеры. Общая идея алгоритма кластеризации состоит в том, чтобы разделить данный набор данных на несколько групп на основе сходства данных.

В этом случае музыканты будут сгруппированы в разные кластеры в соответствии с их музыкальными предпочтениями. Вместо определения групп перед просмотром данных, кластеризация позволяет мне найти и проанализировать органически сформировавшиеся группы музыкантов.

Перед кластеризацией данных важно изменить масштаб числовых переменных набора данных. Поскольку у меня есть смешанные числовые данные, где каждая звуковая функция отличается от другой и имеет разные измерения, запуск функции масштабирования (он же z-стандартизация) является хорошей практикой, чтобы придать им одинаковый вес. После этого я оставил музыкантов как имена строчек, чтобы иметь возможность показать их как метки в сюжете.

scaled.features <- scale(mean_features[-1])rownames(scaled.features) <- mean_features$Musician

Я применил Кластеризация K-средних метод, являющийся одним из самых популярных методов статистического обучения без присмотра. Он используется для немаркированных данных. Алгоритм находит группы в данных с количеством групп, представленных переменным К. Алгоритм работает итеративно, чтобы назначить каждую точку данных одной из групп K на основе предоставленных переменных. Точки данных группируются на базе сходства.

В данном случае я выбрал К = 6 — кластеры можно формировать на основе шести разных жанров, которые я использовал при выборе исполнителей (поп, хип-хоп, R&B, EDM, рок, джаз).

После того, как я использовал алгоритм K-Means для каждого музыканта, я могу построить двумерное представление данных. На первом графике ось x и ось y соответствуют первому и второму главным компонентам соответственно. Собственные векторы (отмеченные красными стрелками) указывают направляющее влияние каждой переменной на главные компоненты.

Давайте посмотрим на кластеры, являющиеся результатом применения алгоритма K-Means к моему набору данных.

1*T57D-wOsVH7Suc-FVEUi0Q

Как вы можете видеть на графике выше, ось x есть PC1 (30,24%) а вот ординат PC2 (16,54%). Это первые два основных компонента. График PCA показывает, что PC1 разделяет исполнителей по громкости/энергии от акустики/мягкости, тогда как PC2, похоже, разделяет исполнителей по шкале валентности от тональности, темпа и инструментальности.

Поскольку мои данные многомерны, скучно проверять все многочисленные двумерные диаграммы рассеяния. Вместо этого удобнее использовать одну «суммирующую» диаграмму рассеяния. Диаграмма рассеяния первых двух основных компонентов, полученных из данных, показана на графике. Процент также является дисперсией, что объясняется каждым компонентом общей изменчивости: 1 компонент охватил 30,24%, а 2 компонент охватил 16,54% информации о многовариантных данных.

Если вам интересно узнать больше о математике, лежащей в основе этого алгоритма, я рекомендую вам обновить анализ основных компонентов.

Давайте посмотрим, какие артисты к каким кластерам относятся:

k_means$cluster
1*qQOP3E-4nHM9eVstkvGD9A

Я также построил другую радарную диаграмму, содержащую характеристики для каждого кластера. Полезно сравнить атрибуты песен, которые создает каждый кластер.

1*kAObmmSYnx8A5AOAmxTKMA

Кластер 1 содержит четырех исполнителей: Coldplay, Avicii, Marshmello и Martin Garrix. Их музыка в большинстве своем исполняется вживую и инструментально, как правило, громкая и полная энергии с высоким темпом. Это не слишком удивительно, поскольку трое из четырех исполнителей исполняют музыку EDM/House, а Coldplay известны своими живыми концертами.

Кластер 2 содержит 2 исполнителей: Фрэнка Синатра и Нору Джонс (есть поклонники джаза?). У них музыка высокая акустика и мажорный режим. Однако они имеют низкие оценки по всем другим признакам. Типичные джазовые мелодии.

Кластер 3 содержит десять артистов: Пост Мэлоун, Кайго, The Chainsmokers, Адель, Лорд, Лана Дель Рэй, Джеймс Артур, One Republic, Джон Ледженд и Алисия Киз. Этот кластер имеет средние баллы преимущественно по всем атрибутам. Это говорит о том, что эта группа артистов хорошо сбалансирована и универсальна в стиле и творчестве, отсюда и разнообразие жанров представленных в этом кластере (EDM, Pop, R&B).

Кластер 4 содержит 15 исполнителей: Ариана Гранде, Марун 5, Дрейк, Джастин Бибер, Бруно Марс, Келвин Харрис, Чарли Пут, Энрике Иглесиас, Future, Wiz Khalifa, Fifth Harmony, Ашер, Маклмор, Зара Ларссон и Рианна. Их музыка танцевальная, громкая, динамичная и энергичная. В этой группе присутствует много молодых мейнстримных исполнителей в жанрах поп и хип-хоп.

Кластер 5 Содержит 10 художников: Тейлор Свифт, Шон Мендес, Эд Ширан, Майкл Бубл, Джон Майер, Элтон Джон, The Script, Стиви Уандер, Джейсон Мраз и Пентатоникс. Это моя любимая группа! Тейлор Свифт? Эд Ширан? Джон Майер? Джейсон Мраз? Элтон Джон? Пожалуй, я слушаю многих певцов и авторов песен. Их музыка преимущественно в мажорной гамме, при этом достигая идеального баланса (среднего балла) по всем остальным атрибутам.

Кластер 6 содержит девять исполнителей: Кендрик Ламар, Канье Вест, Эминем, Бейонсе, Джастин Тимберлейк, 50 Cent, Lil Wayne, Snoop Dogg и Jay-Z. Вы уже видите тенденцию здесь: семеро из них рэперы, а также Бейонсе и Джей Ты регулярно сотрудничают с рэперами. Их песни имеют большое количество произнесенных слов и речевых разделов, продолжительны по времени и часто исполняются вживую. Есть ли лучшее описание рэп-музыки?

Анализ по признаку

Следующие диаграммы показывают значение каждой функции для каждого музыканта. Код ниже подробно описывает процесс создания танцевальность расхожий баровый график. Код для других объектов был пропущен, но впоследствии отображается график каждого объекта.

Танцевальность

1*mmdqIehzJaW53bsZz-r4aw

Если вы хотите поразить свою влюбленность, попробуйте больше слушать Future, Drake, Wiz Khalifa, Snoop Doog и Eminem. С другой стороны, даже не пытайтесь танцевать под мелодии Фрэнка Синатры или Ланы Дель Рэй.

Энергия

1*nmymrRifwfiQinCuBd4YjQ

Вы достаточно энергичный человек, если слушаете многие Мархсмелло, Келвин Харрис, Энрике Иглесиас, Мартин Гаррикс, Эминем, Джей-Зи. Если вы чтите Фрэнка Синатры и Норы Джонс, то все наоборот.

Громкость

1*CfGqLdEzbLosO_NXOoitiQ

Рейтинг громкости почти такой же, как и энергетический.

Вещание

1*0kD8rOdsUlasKAccun4ToA

Все поклонники рэпа: какие ваши любимые песни Кендрика Ламара? или 50 Cent? или Jay-Z? Хм, я удивлен, что Эминем не занимает высшую позицию, поскольку лично я считаю, что он КОЗАЛ из всех рэперов.

Акустичность

1*ljkt02Nbop7eBctlHflmkQ

Акустичность является полной противоположностью громкости и энергии. Мистер Синатра и миссис Джонс выпустили несколько мощных акустических треков в течение своей карьеры.

Инструментальность

1*YQ5rafbPvyNh-KanFWqNNg

EDM для победы! Мартин Гаррикс, Avicii и Marshmello создают треки, почти не содержащие вокала.

Живость

1*DnYTLJ4GDEpwz4AYsh6OMw

Кто такие 5 исполнителей, которые выполнили больше всего живых аудиозаписей? Джейсон Мраз, Coldplay, Мартин Гаррикс, Канье Вест и Кендрик Ламар в таком порядке.

Валентность

1*OelJ9gnwDamJPvZxQFIBMg

Валентность – это признак, описывающий музыкальный позитив, передающий трек. Музыка Бруно Марса, Стиви Уандера и Энрике Иглесиаса очень позитивна, а музыка Ланы Дель Рэй, Coldplay и Мартина Гаррикса звучит довольно отрицательно.

Темп

1*sE4BMoJmy8msXXGNWxYYyg

Future, Marshmello и Wiz Khalifa – короли скорости. Они создают треки с самым высоким темпом в ударах в минуту. А Снуп Догг, лол? Ему, как правило, нужно некоторое время, чтобы произнести свои волшебные слова.

Продолжительность

1*4nZrGRrl94SrqjVLuu6l3g

И последнее, но не менее важное, песни Джастина Тимберлейка, а затем Элтона Джона и Эминема, иногда болезненно длинные. Фрэнк Синатра, Зара Ларссон и Пентатоникс предпочитают более короткую музыку.

Вывод

Вау, мне было очень интересно делать этот проект анализа и визуализации данных Spotify. Кто мог подумать, что Джеймс Артур и Пост Мэлоун находятся в одном кластере? Или Кендрик Ламар – самый быстрый рэппер в игре? Или, что Marshmello победил Мартина Гаррикса в создании энергичных треков?

В любом случае, вы можете просмотреть полный R Markdown, отдельный R-код для обработки и визуализации данных, а также оригинальный набор данных в моем хранилище GitHub здесь. С моей точки зрения, R гораздо лучше в визуализации данных, чем Python, с такими библиотеками, как ggplot и plot.ly. Я очень призываю вас попробовать R!

— —

Если вам понравилось это произведение, я буду рад, если вы нажмете кнопку «хлоп». ? сo другие могут наткнуться на него. Вы можете найти мой собственный код на ГitHub, и больше моих статей и проектов на чttps://jameskle.com/. Вы также можете подписаться на меня в Twitter, отправить мне электронное письмо или найти меня в LinkedIn. Подпишитесь на мой информационный бюллетень, чтобы получать мои последние мысли о науке о данных, машинном обучении и искусственном интеллекте прямо на свой ящик!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *