Кто ваш сторонник номер 1 на Strava?

Изучите Strava API и узнайте с помощью Python

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

В 2022 году, когда я готовился к восхождению в Альпах и пользовался Strava чаще, чем раньше, я заметил, что некоторые люди более щедры, чем другие, в своих похвалах. Но я не имел точного представления о том, кто это был, и это заставило меня задуматься. Есть ли способ более глубоко взглянуть на мою статистику, чем то, что предлагает приложение? Ну, есть.

В этой статье я использовал очень распространенный подход «Extract Transform Load» для структурирования проекта. Я показываю, как мне удалось получить данные о моих действиях из Strava (Extract), вычислить новые идеи (Transform) и построить «График славы» и другие визуализации, чтобы знать, кого благодарить за поддержку (Load).

Со временем я обнаружил, что этот подход был отличным способом организации подобных проектов данных. И последнее замечание перед тем, как приступить к делу: все показанное здесь можно воспроизвести, а код доступен на Github (ссылка в конце статьи), так что вы можете создать свой собственный.

Приступаем к кодированию!

Первое, что нам нужно сделать, это пройти аутентификацию, то есть получить токен доступа от Strava. Следующая функция будет делать именно это с запросом POST, содержащим детали, которые мы получили в предыдущем разделе (идентификатор клиента, секрет клиента, токен обновления и код авторизации) к конечной точке. https://www.strava.com/oauth/token.

В этом разделе мы создадим две функции для:

  1. Получите список всех активностей профиля.
    Используя ранее полученный токен доступа и указав две даты, определяющие интересующий нас объем деятельности, мы получаем список всех активностей между этими двумя датами и их основные характеристики.
  2. Получить список kudoers определенной деятельности.
    К сожалению, список kudoers действий не содержится в результате предыдущего запроса. Нам нужно создать функцию get_kudos, которая возвращает список kudoers для одного действия, идентифицируемого его activity_id.

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

Приведенная ниже функция преобразования извлекает из списка действий следующие данные:

  1. Идентификатор действия, который используется в качестве уникального идентификатора действия.
  2. Количество похвал за каждое действие.
  3. Список всех kudoers для действия, используя функцию get_kudos() в цикле.
  4. Расстояние каждого действия.
  5. Время, затраченное на каждое действие.
  6. Вид деятельности.

⚠️ Существует ограничение на использование Strava API. Мы ограничены 100 звонками каждые 15 минут и 1000 звонками в день.

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

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

Осталось только извлечь выгоду из функций, которые мы только что создали, и начать рисовать интересные вещи!

В моем случае я рассматриваю свою деятельность в 2022 году, до этой даты — 24.

Из нашей структуры данных очень легко получить несколько ключевых показателей эффективности высокого уровня за данный период:

KPI высокого уровня — Изображение автора

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

Среднее количество похвал за вид деятельности — Изображение автора

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

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

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

Положительная корреляция между дистанцией бега и количеством положительных отзывов — График автора

Наконец, мы можем построить «График славы», в котором мы можем увидеть, кто является нашими главными сторонниками, и выразить им свою благодарность.
Конечно, некоторые люди более зависимы от Strava, чем другие, и будут хвалить, прокручивая ленту активности, в то время как другие открывают приложение только время от времени и хвалят только самые последние действия, которые им довелось увидеть.
Этот график ни в коей мере не предназначен для оценки людей за то, что они дали похвалу или нет, он просто иллюстрирует новые идеи, которые вы не увидите больше нигде — даже в премиум-версии приложения.

«График славы», показывающий лучших сторонников — график автора

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

Если вы хотите проанализировать свои действия в Strava и выяснить, кто является вашим главным сторонником, весь код можно найти здесь:
https://github.com/Guigs11/strava_kudos

Спасибо, что дочитали статью до конца!
Не стесняйтесь оставить сообщение ниже или связаться со мной через
LinkedIn если у вас есть вопросы/замечания!
Еще не все!

Кто ваш сторонник номер 1 на Strava? Переиздано из источника https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 через https://towardsdatascience.com/feed

<!–

->

Отметка времени:

Больше от Блокчейн-консультанты