Strava의 1위 서포터는 누구인가요?

Strava API를 탐색하고 Python으로 알아보세요.

지난 몇 년 동안 Strava는 사이클링 및 달리기 활동을 추적하는 데 꼭 필요한 앱이 되었습니다. 이 앱의 많은 멋진 기능 중 하나는 친구들이 귀하의 활동에 대해 칭찬을 해주는 기능입니다. 때로는 이러한 칭찬이 계속해서 사기를 북돋아 주는 것일 수도 있습니다.

2022년에 알프스 등반을 준비하며 이전보다 더 정기적으로 Strava를 사용하면서 어떤 사람들은 다른 사람들보다 더 관대하고 칭찬을 아끼지 않는다는 것을 알게 되었습니다. 그러나 나는 그것이 누구인지 정확히 알지 못했고 이것이 나를 생각하게 만들었습니다. 앱에서 제공하는 것보다 내 통계를 더 자세히 볼 수 있는 방법이 있나요? 글쎄요.

이 기사에서는 매우 일반적인 "변환 로드 추출" 접근 방식을 사용하여 프로젝트를 구성했습니다. Strava에서 내 활동 데이터를 가져오고(추출), 새로운 통찰력을 계산하고(변환), 지원에 대해 감사할 사람을 파악하기 위한 "명성 그래프" 및 기타 시각화를 구축하는 방법(로드)을 보여 드리겠습니다.

시간이 지나면서 나는 이 접근 방식이 유사한 데이터 프로젝트를 구성하는 좋은 방법이라는 것을 알게 되었습니다. 시작하기 전에 마지막으로 참고할 점은 여기에 표시된 모든 내용은 재현 가능하며 코드는 Github(문서 끝의 링크)에서 사용할 수 있으므로 직접 구축할 수 있습니다.

코딩을 시작해 보자!

가장 먼저 해야 할 일은 인증하는 것입니다. 즉, Strava에서 액세스 토큰을 가져오는 것입니다. 다음 함수는 이전 섹션에서 얻은 세부 정보(클라이언트 ID, 클라이언트 비밀번호, 새로 고침 토큰 및 인증 코드)를 포함하는 POST 요청을 통해 엔드포인트에 대한 작업을 수행합니다. https://www.strava.com/oauth/token.

이 섹션에서는 다음을 수행하는 두 가지 함수를 만듭니다.

  1. 프로필의 모든 활동 목록을 가져옵니다.
    이전에 얻은 액세스 토큰을 사용하고 관심 있는 활동 범위를 정의하는 두 날짜를 지정하면 이 두 날짜 사이의 모든 활동 목록과 주요 특징을 얻을 수 있습니다.
  2. 특정 활동에 대한 칭찬 목록을 가져옵니다.
    안타깝게도 이전 요청 결과에는 활동에 대한 찬사 목록이 포함되어 있지 않습니다. Activity_id로 식별되는 단일 활동에 대한 칭찬 목록을 반환하는 get_kudos 함수를 빌드해야 합니다.

이제 원하는 데이터를 얻었으므로 필요한 것만 유지하고 이를 Pandas Dataframe에 넣는 것이 좋습니다.

아래 변환 함수는 활동 목록에서 다음 데이터를 추출합니다.

  1. 활동의 고유 식별자로 사용되는 활동 ID입니다.
  2. 각 활동의 칭찬 수입니다.
  3. 루프에서 get_kudos() 함수를 활용하여 활동에 대한 모든 칭찬 목록입니다.
  4. 각 활동의 거리.
  5. 각 활동에 소요된 시간입니다.
  6. 활동 유형.

⚠️ Strava API 사용에는 제한이 있습니다. 통화는 100분마다 15통, 하루 1000통으로 제한되어 있습니다.

이 프로젝트에서는 API를 한 번 호출하여 활동 목록을 가져온 다음 활동당 한 번씩 각 활동의 칭찬 목록을 가져옵니다.

즉, 고려 중인 창에 100개가 넘는 활동이 있는 경우 코드는 그대로 작동하지 않으며 API 사용 제한을 준수하도록 약간 수정해야 합니다.

이제 남은 유일한 일은 우리가 방금 구축한 함수를 활용하고 몇 가지 흥미로운 일을 계획하는 것입니다!

제 경우에는 2022년 현재까지(24년 10월 2022일) 활동을 고려하고 있습니다.

데이터 구조에서 특정 기간에 몇 가지 높은 수준의 KPI를 얻는 것은 매우 쉽습니다.

높은 수준의 KPI — 작성자의 이미지

이전 섹션에서 각 활동에 대한 스포츠 유형을 얻었으므로 특정 유형의 활동이 다른 활동보다 칭찬을 받는 경향이 있는지 쉽게 조사할 수도 있습니다. 활동 유형별 평균 칭찬 수는 다음과 같습니다.

활동 유형별 평균 칭찬 수 — 작성자 이미지

가장 대중적인 활동은 아니더라도 달리기는 데이터 포인트가 가장 많은 스포츠였기 때문에 좀 더 파고들어보았습니다. 우리는 왜 어떤 활동이 다른 활동보다 더 많은 칭찬을 받는지 이해하려고 노력할 수 있습니다. 달리기 거리와 활동이 받게 될 칭찬 수 사이의 가능한 상관관계를 살펴보겠습니다.

아래 그래프에서 볼 수 있듯이 실행 시간이 길어질수록 칭찬 수가 높아지는 등 양의 상관 관계가 있는 것으로 나타났습니다.
물론, 우리가 고려한 소수의 데이터 포인트를 고려할 때 이 결과의 통계적 유의성은 논쟁의 여지가 있습니다. 여기서 확실한 결론은 더 많이 달려야 한다는 것이다.

다른 변수의 영향을 살펴보며 분석을 더 진행할 수도 있지만 이에 대해서는 다른 기사에서 다루겠습니다.

달리기 거리와 칭찬 수 사이의 양의 상관관계 — 저자별 그래프

마지막으로, 우리는 최고의 지지자가 누구인지 확인하고 감사 인사를 전할 수 있는 "명성 그래프"를 그릴 수 있습니다.
물론 일부 사람들은 다른 사람들보다 Strava에 더 중독되어 활동 피드를 아래로 스크롤하면서 칭찬을 하는 반면, 다른 사람들은 가끔씩만 앱을 열고 자신이 본 가장 최근 활동에 대해서만 칭찬을 보냅니다.
이 그래프는 사람들이 칭찬을 하는지 여부를 판단하는 것이 아니라 단순히 프리미엄 버전의 앱에서도 볼 수 없는 새로운 통찰력을 보여주는 것입니다.

최고의 지지자를 보여주는 “명성 그래프” — 작성자별 그래프

Strava API에서 얻을 수 있는 모든 데이터로 우리가 할 수 있는 일이 훨씬 더 많다는 것은 의심할 여지가 없습니다. 이것은 단지 특이한 질문에 답하기 위한 첫 번째 기회이자 일을 진행하기 위한 좋은 연습이었습니다.

Strava 활동을 분석하고 최고의 지지자가 누구인지 파악하려면 여기에서 전체 코드를 찾을 수 있습니다.
https://github.com/Guigs11/strava_kudos

글을 끝까지 읽어주셔서 감사합니다!
아래에 메시지를 남기거나 다음을 통해 저에게 연락해 주세요.
링크드인 질문/의견이 있으시면!
올 더!

Strava에서 당신의 1위 서포터는 누구인가요? 소스 https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4에서 https://towardsdatascience.com/feed를 통해 다시 게시됨

<!–

–>

타임 스탬프 :

더보기 블록 체인 컨설턴트