Хто ваш прибічник №1 у Strava?

Досліджуйте API Strava та дізнавайтеся про це за допомогою Python

За останні кілька років Strava стала моїм улюбленим додатком для відстеження моїх велоспорту та бігу. Однією з багатьох цікавих функцій програми є можливість ваших друзів відзначати вам подяку за вашу діяльність. І іноді ці подяки – це просто моральний підйом, який вам потрібен, щоб продовжувати.

У 2022 році, коли я готувався до сходження в Альпах і використовував Strava більш регулярно, ніж раніше, я помітив, що деякі люди були більш щедрі, ніж інші, у своїй похвалі. Але я не мав точного уявлення, хто це був, і це змусило мене задуматися. Чи є спосіб глибше переглянути мою статистику, ніж те, що пропонує додаток? Ну, є.

У цій статті я використав дуже поширений підхід «Extract Transform Load» для структурування проекту. Я показую, як мені вдалося отримати дані про свою діяльність із Strava (Extract), обчислити нові ідеї (Transform) і створити «Kudos Graph» та інші візуалізації, щоб знати, кому дякувати за підтримку (Load).

З часом я виявив, що цей підхід є чудовим способом організації подібних проектів даних. Останнє зауваження перед тим, як почати: усе, що тут показано, можна відтворити, а код доступний на Github (посилання в кінці статті), тож ви можете створити свій власний.

Давайте почнемо кодування!

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

У цьому розділі ми створюємо дві функції, щоб:

  1. Отримати список усіх дій профілю.
    Використовуючи раніше отриманий маркер доступу та вказуючи дві дати, що визначають обсяг діяльності, яка нас цікавить, ми отримуємо список усіх дій між цими двома датами та їх основні характеристики.
  2. Отримайте список любителів певної діяльності.
    На жаль, список кудоерів діяльності не міститься в результаті попереднього запиту. Нам потрібно створити функцію get_kudos, яка повертає список kudoers для однієї активності, визначеної її activity_id.

Тепер, коли ми отримали потрібні дані, ідея полягає в тому, щоб зберегти лише те, що нам потрібно, і помістити це в Pandas Dataframe.

Наведена нижче функція перетворення витягує зі списку дій такі дані:

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

⚠️ Існує обмеження щодо використання Strava API. Ми обмежені 100 дзвінками кожні 15 хвилин і 1000 дзвінками на день.

У цьому проекті ми викликаємо API один раз, щоб отримати список дій, а потім один раз для кожної діяльності, щоб отримати список kudoers у кожній з них.

Це означає, що якщо у вас більше 100 дій у розглянутому вікні, код, як він є, не працюватиме, і вам потрібно буде трохи змінити його, щоб відповідати обмеженню використання API.

Єдине, що залишилося зробити, це використати функції, які ми щойно створили, і почати будувати деякі цікаві речі!

У моєму випадку я вважаю свою діяльність у 2022 році, до цієї дати — 24.

З нашої структури даних дуже легко отримати кілька KPI високого рівня за певний період:

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

Оскільки ми отримали вид спорту для кожної діяльності в попередньому розділі, ми також можемо легко дослідити, чи певні види діяльності більше схильні до отримання похвали, ніж інші. Ось середня кількість похвал за вид діяльності:

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

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

Виявилося, що існує позитивна кореляція, тобто чим довший пробіг, тим більша кількість похвал, як показано на графіку нижче.
Звичайно, статистична значущість цього результату є дискусійною, враховуючи невелику кількість даних, які ми розглянули. Єдиний певний висновок тут – мені потрібно більше бігати.

Ми могли б продовжити аналіз, дивлячись на вплив інших змінних, але я залишу це для іншої статті.

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

Нарешті, ми можемо побудувати «Gudos Graph», на якому ми можемо побачити, хто є нашими найбільшими прихильниками, і висловити їм високу оцінку.
Звичайно, деякі люди залежні від 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

<!–

->

Часова мітка:

Більше від Консультанти з блокчейнів