Комплексное исследование данных по науке о данных с советами и реализацией Python для реальной бизнес-задачи: что делает плейлист Spotify успешным

Если вы готовитесь к интервью с Data Science или Data Consultant Case Study, эта статья для вас. Это комплексное исследование данных с реализацией Python, заданное на заключительном этапе набора процессы помогут вам понять, с чего начать и какие необходимые шаги вы должны предпринять, чтобы взломать такие интервью для изучения конкретных случаев. Эта статья даст вам ответы на следующие и многие другие вопросы:

- Чего ожидать во время интервью Spotify на месте?

- Как провести сквозное тематическое исследование, отвечая на вопрос Data Science Что делает плейлист Spotify успешным?

Это станет для вас хорошей отправной точкой, которая позволит вам произвести хорошее первое впечатление на следующем собеседовании в области науки о данных.

В этой статье вы найдете следующие темы, которые являются неотъемлемой частью каждого тематического исследования по науке о данных:

- Content of Spotify Case Study Presentation Interview
- Why are you asked to do a Case Study?
- Defining Business Goal and Technical Goal
- Game Plan
- Defining Success Metrics
- Short Term Success Metrics
- Long Term Success Metrics
- Feature Engineering: Candidates for Successful Playlists
- Data Exploration and Visualization
- Data Modelling
- Conclusion: Answering the Case Study Question
- Python Code

Очные и финальные собеседования могут быть одними из самых пугающих во всем процессе собеседования, и в этом блоге я сформулирую цели бизнеса и науки о данных в этом конкретном примере, выполню визуализацию данных. strong> и Исследовательский анализ. Кроме того, я проведу простое моделирование данных с использованием линейной регрессии и закончу.

Примечание. Вы можете найти другие подходы к решению аналогичного примера из практики Spotify Onsite Interview здесь

Содержание интервью из тематического исследования Spotify

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

  • провести тематическое исследование, связанное с исследованием данных и анализом визуализации
  • быть знакомым с методами моделирования, NLP, машинным обучением и искусственным интеллектом.
  • Подготовить презентацию в Power Point

После того, как вы подготовили свою работу, на которую у вас есть 1 неделя времени, вас попросят представить ее группе интервьюеров Spotify (более 4–6 человек, включая HM, исследователей пользователей, менеджеров по продуктам и специалистов по данным).

Совет. Будьте готовы отвечать на вопросы, основанные на статистике.

Если вы хотите изучить или освежить свои знания в области основных статистических понятий, вы можете прочитать эту статью:



Совет. Будьте готовы отвечать на вопросы, связанные с A/B-тестированием.

Все, что вам нужно знать об A/B-тестировании для решения этой проблемы, можно найти здесь:



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



Интервью с техническим экраном «Как взломать Spotify Data Science
Список точных команд Python/SQL и экспериментальных тем, которые вы должны знать, чтобы пройти технический экран Spotifytowardsdatascience.com»



Подробнее на эту тему вы можете прочитать здесь на Glassdoor.com

Почему вас просят провести тематическое исследование?

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

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

В этом блоге я рассмотрю следующие темы:

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

Шаг 1: Определение цели проекта

Итак, начнем с цели проекта. Это цель более высокого уровня для этого проекта, и в данном случае это ответ на вопрос: что делает плейлист Spotify успешным. ​

Здесь мы можем провести различие между бизнес-целью (OKR или KR) и технической целью (целью проекта Data Science). Итак, Бизнес-цель здесь будет заключаться в том, чтобы предоставить лучшие плейлисты пользователям Spotify:

  • 1: повысить удовлетворенность пользователей (уменьшить время поиска и улучшить качество результатов поиска или результатов рекомендательной системы), ​
  • 2: увеличить использование
  • 3: увеличить доход​

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

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

​Следовательно, мы хотим, чтобы пользователи Spotify слушали больше плейлистов и дольше.​

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

Шаг 2: План игры или стратегия

Следующее, что вам нужно сделать, — это придумать стратегию проведения вашего тематического исследования с целью ответить на изначально заданный вопрос: «Что делает плейлист успешным?» и для достижения целей, указанных на предыдущем шаге.

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

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

Мы хотим определить ключевые показатели успешных плейлистов, которые отличают успешные плейлисты от неудачных.​

Шаг 3: Данные и описательная статистика

Вот как выглядят необработанные данные, всего 403 366 строк (списки воспроизведения) и 25 столбцов (функции). Здесь мы видим первые 5 и последние 5 наблюдений в данных, а также первые 4 и последние 4 столбца.

  • удаление выбросов из данных
  • проверка на отсутствующее значение

Описательная статистика для некоторых функций

Давайте посмотрим на некоторые описательные статистические данные. Обратите внимание, что 399 плейлистов Spotify были исключены из данных при выполнении расчетов. Эта часть необходима для удаления выбросов из данных.

Мы видим, что уникальных владельцев плейлистов около 315 тысяч. В среднем в плейлисте 202 трека, 88 альбомов и 84 исполнителя. Мы также видим, что в среднем плейлист имеет довольно короткое название, всего 2 токена. ​

Более того, мы видим, что в плейлисте в среднем 21 поток, при этом только 12 из этих потоков более 30 секунд. Таким образом, в среднем 57% сегодняшних потоков плейлистов прослушиваются более 30 секунд. Это то, что мы хотим изменить и увеличить этот процент.​

Когда мы смотрим на статистику функций, связанных с использованием, особенно на DAU, его AVG, MIN, MAX, мы видим, что существует большая разница в ежедневном активном использовании для каждого плейлиста. Есть плейлисты с очень большим количеством DAU, а есть с очень небольшим количеством или вообще без. Аналогичную картину можно увидеть по еженедельному и ежемесячному активному использованию. ​

Мы хотим, чтобы пользователи Spotify слушали больше плейлистов и дольше.​

Шаг 4. Определение показателей успеха

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

Когда мы можем сказать, что плейлист успешен?

  • Пользователи много слушают успешные плейлисты
  • Пользователи прослушивают успешный плейлист дольше (более 30 секунд)

Каковы возможные уровни успеха?

  • Успех на уровне плейлиста
  • Успех на уровне владельца плейлиста

Итак, вот пример нескольких показателей, которые мы можем использовать для измерения успеха плейлиста, и здесь мы можем провести различие между краткосрочным и долгосрочным успехом. ​

Для краткосрочных показателей мы можем использовать, например, DAU или WAU, мы можем использовать количество потоков с более чем 30 сегодня. Некоторыми долгосрочными показателями успеха для плейлиста могут быть MAU, ежемесячные активные пользователи, Monthlystreams30 или ежемесячные потоки владельцев. ​

Показатели краткосрочного успеха

  • DAUs: количество активных пользователей в день, которые транслируют более 30 секунд из плейлиста.
  • WAUs: количество активных пользователей за неделю, которые транслируют более 30 секунд из плейлиста.
  • Streams30s:количество потоков из плейлиста сегодня с более чем 30

Показатели долгосрочного успеха

  • MAUs: количество активных пользователей в месяц с трансляцией из плейлиста продолжительностью более 30 секунд в этом месяце. Или общее количество активных пользователей плейлиста за последние 2 месяца (mau_both_months)
  • Monthly_streams30s: количество потоков продолжительностью более 30 секунд по плейлисту.
  • Monthly_owner_streams30s: количество потоков продолжительностью более 30 секунд владельцем плейлиста в этом месяце.

Выбранная метрика

Для простоты сегодня я выбрал WAU в качестве показателя успеха, который является хорошим балансом между краткосрочной и долгосрочной эффективностью плейлиста. Однако в идеале мы хотим разработать пользовательские показатели, которые содержат как краткосрочную, так и долгосрочную производительность плейлиста, а также производительность владельцев. ​Например, сочетание DAU, WAU, MAU, потоков30 сегодня, ежемесячных потоков и ежемесячных потоков владельца.​

В идеале мы хотим разработать индивидуальную метрику, содержащую как краткосрочную, так и долгосрочную производительность плейлиста, а также производительность владельцев. ​Например, сочетание DAU, WAU, MAU, потоков30 сегодня, ежемесячных потоков и ежемесячных потоков владельца.​

Шаг 5. Возможности-кандидаты

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

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

Мы также можем использовать анализ настроений, чтобы измерить, насколько положительными или отрицательными являются токены плейлиста.​

Можно просмотреть количество списков воспроизведения, которые есть у владельца, что является показателем усилий владельца, или создать двоичную переменную, указывающую, имеет ли владелец списка воспроизведения более 1 списка воспроизведения, который является показателем активности или участия. владельца. Наконец, можно использовать некоторые соотношения, описывающие плейлист.​

Разнообразие плейлистов

  • Количество дорожек
  • Количество художников
  • Количество альбомов

Категориальные характеристики плейлиста

  • Настроения: ведущее настроение
  • Жанры: Ведущие жанры
  • Tokens Sentiment (анализ настроений для токенов)

Описатели владельцев плейлистов

  • Количество плейлистов на владельца (усилия владельца)
  • Владелец имеет более 1 плейлиста (прокси для активности владельцев)

Соотношение плейлистов

  • Отношение Streams30s к количеству потоков
  • Streams30 к ежемесячному соотношению потоков
  • Соотношение Monthly_owner_stream30s к Monthly_stream30s

Вы можете использовать анализ настроений, чтобы измерить, насколько положительными или отрицательными являются токены плейлиста.​

Шаг 6. Гипотеза

Разнообразие имеет значение?

  • Жанр
  • настроения
  • количество дорожек
  • альбомы
  • художники

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

Гипотеза. Связано ли большее количество жанров, настроений, исполнителей, треков и альбомов в плейлисте с более высоким успехом плейлиста?

Имеет ли значение чувство?

  • Анализ настроений
  • жанр
  • жетоны

Затем мы можем проверить, имеет ли значение Sentiment в токенах плейлиста, то есть:

Гипотеза. Влияет ли тональность плейлиста на его успех?​

Имеет ли значение усилие?

  • Длина названия

Мы можем проверить, имеют ли значение усилия владельца, то есть:

Гипотеза. Связано ли большее усилие владельца плейлиста с большим успехом плейлиста?

Вовлеченность имеет значение?

  • Количество плейлистов, принадлежащих пользователю
  • Ежемесячное отношение владельцев стримов 30 сек. к ежемесячному показателю стримов 30 сек.

Наконец, можно проверить, имеет ли значение вовлеченность, например:

Гипотеза. Связано ли более активное взаимодействие со стороны владельца с более высоким успехом плейлиста?

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

Шаг 7. Подготовка данных

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

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

Проверка выбросов

  • Удаление 399 плейлистов Spotify с потоком выше среднего
  • Удаление строк из 99-го процентиля

Далее проверяем пропущенное значение. Хотя пустых значений нет, в переменных есть точки данных с отсутствующими значениями, особенно в переменных «Жанры» и «Настроения».

Проверка пропущенных значений

  • В данных нет нулевых значений, но есть пропущенные значения, особенно в переменных «Настроение», «Жанр».

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

Поиск информации и анализ настроений для токенов

  • Преобразование текста в список строк
  • Оценка тональности низкая: отрицательная против высокой: положительная (НЛП на жетонах)

Шаг 8. Исследование и визуализация данных

Начнем с исследования данных и визуализации данных.

Плейлисты ведущих жанров

Вот гистограмма ведущего жанра плейлиста, и мы видим, что есть 3 четких ведущих жанра с наибольшим количеством плейлистов. ​

Это самые распространенные жанры плейлистов, и что мы можем сделать, так это создать бинарную переменную для этих трех жанров «Инди-рок», «Рэп» и «Поп» и использовать их в качестве независимых переменных в прогностической модели, которая поможет обнаружить причинно-следственную связь в жанр и исполнение плейлиста.​

Мы наблюдаем:

  • 3 самых популярных ведущих жанра во всех плейлистах: «Инди-рок», «Рэп», «Поп»
  • Плейлисты из этих 3-х жанров более удачны?
  • Бинарные функции из этих 3 для жанров для модели прогнозирования будущего
lead_genres = stream_data_no_outliers.groupby("genre_1")["playlist_uri"].count().reset_index().sort_values("playlist_uri",ascending = False)
objects = lead_genres.genre_1
y_pos = np.arange(len(objects))
genre_1 = lead_genres.playlist_uri

plt.bar(y_pos, genre_1, align='center', alpha=0.5, color = "darkgreen")
plt.xticks(y_pos, objects,rotation='vertical')
plt.title("Lead Playlist Genre Frequency")
plt.xlabel("Lead Playlist Genre")
plt.ylabel("Number of Playlists")
plt.tight_layout()
plt.show()

Плейлисты под настроение

Давайте теперь посмотрим на другую гистограмму, на этот раз для ведущего настроения плейлиста, и мы увидим, что есть 2 победителя. Это наиболее часто встречающиеся настроения в плейлистах: «Непокорное и взволнованное». ​

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

Мы наблюдаем:

  • 2 самых популярных ведущих настроения во всех плейлистах: «Непокорный», «Взволнованный».
  • Плейлисты с этими двумя настроениями более успешны
  • Бинарные функции из этих двух настроений для модели прогнозирования будущего
lead_moods = stream_data_no_outliers.groupby("mood_1")["playlist_uri"].count().reset_index().sort_values("playlist_uri",ascending = False)
objects = lead_moods.mood_1
y_pos = np.arange(len(objects))
mood_1 = lead_moods.playlist_uri
# histogram of Binomial distribution
plt.bar(y_pos, mood_1, align='center', alpha=0.5, color = "darkgreen")
plt.xticks(y_pos, objects,rotation='vertical')
plt.title("Lead Playlist Mood Frequency")
plt.xlabel("Lead Playlist Mood")
plt.ylabel("Number of Playlists")
plt.tight_layout()
plt.show()

Усилия владельцев: количество токенов в названии плейлиста

Давайте проверим, связаны ли усилия владельца с успехом плейлиста. Эта гистограмма, отображающая среднее значение WAU в зависимости от количества токенов в плейлисте, не показывает четкой закономерности, хотя кажется, что наблюдается положительная закономерность, пока количество токенов не приблизится к 12.​

Мы наблюдаем:

  • Нет четкой закономерности, убеждающей в том, что длина токенов (прокси усилий) влияет на использование плейлиста​
  • Существует некоторая положительная закономерность от 0 до 11 в виде числовых жетонов, но после того, как этот эффект исчезает
wau_num_tokens = df.groupby("num_tokens")["wau"].mean().reset_index().sort_values("num_tokens",ascending = True)
objects = wau_num_tokens.num_tokens
y_pos = np.arange(len(objects))
ntokens = wau_num_tokens.wau
plt.bar(y_pos, ntokens, align='center', alpha=0.5, color = "darkgreen")
plt.xticks(y_pos, objects)
plt.title("AVG Weekly Active Users to Number of Tokens of Playlist")
plt.xlabel("Number Tokens in Playlist")
plt.ylabel("AVG WAU")
plt.tight_layout()
plt.show()

Жанровое разнообразие имеет значение

Теперь давайте посмотрим на точечную диаграмму WAU по количеству жанров в плейлисте, чтобы увидеть, связано ли разнообразие жанров с WAU. ​

Мы видим, что плейлисты с наибольшим количеством жанров 3 имеют самый высокий WAU, и что существует положительная связь между количеством жанров в плейлисте и его успехом. То есть наблюдаем:

  • Положительная связь между количеством жанров и WAU
  • У плейлистов с тремя жанрами WAU выше, чем у плейлистов с менее чем тремя жанрами.

Итак, разнообразие жанров имеет значение.

wau_num_genres = df.sort_values("num_genres",ascending = True)
plt.scatter( wau_num_genres.num_genres,wau_num_genres.wau, color = "lime")
plt.title("Weekly Active Users to Number of Genres in Playlist")
plt.xlabel("Number Genres in Playlist")
plt.ylabel("WAU")
plt.tight_layout()
plt.show()

Разнообразие треков в плейлистах

Далее давайте посмотрим на график WAU по количеству треков в плейлисте, чтобы увидеть, связано ли разнообразие треков с успехом плейлистов. ​

Кажется, что на графике нет четкой зависимости. Так что разнообразие треков не имеет значения​

wau_num_tracks = stream_data_no_outliers.groupby("n_tracks")["wau"].mean().reset_index().sort_values("n_tracks",ascending = True)
plt.scatter( wau_num_tracks.n_tracks,wau_num_tracks.wau, color = "lime")
plt.title("AVG Weekly Active Users to Number of Tracks in Playlist")
plt.xlabel("Number Tracks in Playlist")
plt.ylabel("AVG WAU")
plt.tight_layout()
plt.show()

Разнообразие в плейлистах Альбомы

Теперь давайте посмотрим на точечную диаграмму WAU по количеству альбомов в плейлисте, чтобы увидеть, связано ли разнообразие альбомов с WAU. ​

Мы видим, что существует положительная связь между количеством альбомов и успехом плейлистов, основываясь на наблюдениях:

  • Положительная связь между количеством альбомов в плейлисте и WAU​
  • Плейлисты с большим количеством альбомов показывают более высокий WAU, чем плейлисты с очень небольшим количеством альбомов.
  • Но этот эффект проходит

Таким образом, разнообразие альбомов имеет значение, но мы должны помнить, что корреляция не является причинно-следственной связью.

wau_num_albums = stream_data_no_outliers.groupby("n_albums")["wau"].mean().reset_index().sort_values("n_albums",ascending = True)
plt.scatter( wau_num_albums.n_albums,wau_num_albums.wau, color = "lime")
plt.title("AVG Weekly Active Users to Number of Albums in Playlist")
plt.xlabel("Number Albums in Playlist")
plt.ylabel("AVG WAU")
plt.tight_layout()
plt.show()

Разнообразие в плейлистах

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

Мы видим, что существует положительная связь между количеством исполнителей и успехом плейлистов на основе:

  • Положительная связь между количеством исполнителей в плейлисте и WAU​
  • Плейлисты с большим количеством исполнителей показывают более высокий WAU, чем плейлисты с очень небольшим количеством исполнителей.
  • Но этот эффект проходит

Таким образом, разнообразие художников имеет значение, но корреляция не является причинно-следственной связью.

wau_num_artists = stream_data_no_outliers.groupby("n_artists")["wau"].mean().reset_index().sort_values("n_artists",ascending = True)
plt.scatter( wau_num_artists.n_artists,wau_num_artists.wau, color = "lime")
plt.title("AVG Weekly Active Users to Number of Artists in Playlist")
plt.xlabel("Number Artists in Playlist")
plt.ylabel("AVG WAU")
plt.tight_layout()
plt.show()

Настроение плейлистов

Теперь давайте проверим, имеют ли значение настроения в плейлисте. Здесь мы используем метод NLP под названием TextBlob для анализа настроений токенов. ​

Идея этого состоит в том, чтобы получить общую оценку между [-1 и 1], которая будет представлять оценку тональности текста в этих токенах case, где большие значения сигнализируют о положительной тональности.

Как видите, слева у вас есть плейлисты с самыми положительными токенами, а справа у вас есть плейлисты с наибольшим количеством отрицательных токенов.​

Этот график WAU по показателю настроения токенов не показывает какой-либо четкой закономерности, поэтому, насколько мы можем видеть из этих данных, настроение токенов в плейлисте на самом деле не связано с успехом плейлиста.​

wau_sentimentscore = df.sort_values("sentiment_score_tokens", ascending = True)
plt.scatter( wau_sentimentscore.sentiment_score_tokens,wau_sentimentscore.wau, color = "lime")
plt.title("Weekly Active Users to Sentiment Score of Playlist Tokens")
plt.xlabel("Tokens Sentiment Score")
plt.ylabel("WAU")
plt.tight_layout()
plt.show()

При использовании визуализации и исследования данных необходимо интерпретировать результаты с недоверием, поскольку корреляция не является причинно-следственной связью.

Шаг 9: Простое моделирование данных

На основе анализа данных и визуализации мы составили список возможных переменных, которые показали связь с успехом плейлиста. Но эти переменные показывают корреляцию с успехом плейлиста.

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

Для этого нам нужно создать выборку списков воспроизведения, и размер выборки можно определить на основе уровня достоверности, который я выбрал как 99%, погрешность 1%, и это привело к 16K спискам воспроизведения. ​

Ниже приведены результаты выполнения множественной линейной регрессии с оценкой OLS при использовании некоторых из ранее упомянутых функций и некоторых новых функций в качестве независимых переменных и WAU в качестве зависимой переменной. ​

Мы видим, что жанр поп-музыки оказывает статистически значимое и негативное влияние на WAU плейлиста. Кроме того, количество альбомов и количество жанров оказывают статистически значимое положительное влияние на WAU плейлиста. Это подтверждает наши предыдущие выводы о том, что разнообразие имеет значение. ​

Подводя итоги регрессии:

  • Жанр поп-музыки:значительный и отрицательный эффект ​
  • Streams30s: значительный и положительный эффект ​
  • Число_альбомов: значительный и положительный эффект​
  • Num_genres: значительный и положительный эффект ​
  • Пользователи: значительный положительный эффект ​

Шаг 10. Выводы

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

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

Но нам нужно больше этих функций и нам нужна более продвинутая метрика успеха.

Шаг 11: Следующие шаги

Эти идеи — лишь верхушка айсберга. Эти данные содержат много интересных и важных особенностей, и, к сожалению, из-за нехватки времени сегодня обсуждались лишь некоторые из них. ​

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

​После этого можно использовать Контролируемое машинное обучение для персонализации поисковой системы или системы рекомендаций, которая предоставляет плейлисты пользователям. Потому что мы хотим показывать самые успешные плейлисты вверху. Затем можно использовать A/B-тестирование для проверки нового алгоритма на существующих рекомендательных системах.

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

Реализация Python

Если вам понравилась эта статья, вот некоторые другие статьи, которые могут вам понравиться:



Интервью с техническим экраном «Как взломать Spotify Data Science
Список точных команд Python/SQL и экспериментальных тем, которые вы должны знать, чтобы пройти технический экран Spotifytowardsdatascience.com»











Спасибо, что прочитали

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

Подпишитесь на мою страницу Medium, чтобы прочитать больше статей о различных темах, связанных с наукой о данных и анализом данных. Дополнительные сведения о практических применениях машинного обучения, математических и статистических концепций см. в моем аккаунте Github.
Я приветствую отзывы и со мной можно связаться в LinkedIn. .

Удачного обучения!