Quem é seu apoiador número 1 no Strava?

Explore a API Strava e descubra com Python

Nos últimos anos, o Strava se tornou meu aplicativo preferido para monitorar minhas atividades de ciclismo e corrida. Um dos muitos recursos interessantes do aplicativo é a capacidade de seus amigos elogiarem suas atividades. E às vezes, esses elogios são apenas o impulso moral de que você precisa para continuar.

Em 2022, enquanto me preparava para uma escalada nos Alpes e usava o Strava com mais regularidade do que antes, percebi que algumas pessoas eram mais generosas do que outras com seus elogios. Mas eu não tinha ideia precisa de quem era e isso me fez pensar. Existe uma maneira de analisar minhas estatísticas mais profundamente do que o que o aplicativo oferece? Bem, existe.

Neste artigo, usei uma abordagem muito comum “Extract Transform Load” para estruturar o projeto. Estou mostrando como consegui obter dados de minhas atividades no Strava (Extract), calcular novos insights (Transform) e construir o “Kudos Graph” e outras visualizações para saber a quem agradecer pelo suporte (Load).

Com o tempo, descobri que essa abordagem era uma ótima maneira de organizar projetos de dados semelhantes. Uma última observação antes de começar: tudo o que é mostrado aqui é reproduzível e o código está disponível no Github (link no final do artigo) para que você possa construir o seu próprio.

Vamos começar a codificar!

A primeira coisa que precisamos fazer é autenticar – ou seja, obter o token de acesso do Strava. A função a seguir fará exatamente isso com uma solicitação POST, contendo os detalhes que obtivemos na seção anterior (id do cliente, segredo do cliente, token de atualização e código de autorização) para o endpoint https://www.strava.com/oauth/token.

Nesta seção, criamos duas funções para:

  1. Obtenha a lista de todas as atividades do perfil.
    Utilizando o token de acesso que obtivemos anteriormente e especificando duas datas que definem o escopo das atividades que nos interessam, obtemos a lista de todas as atividades entre essas duas datas e suas principais características.
  2. Obtenha a lista de kudoers de uma atividade específica.
    Infelizmente a lista dos kudoers das atividades não consta no resultado da solicitação anterior. Precisamos construir a função get_kudos que retorna a lista de kudoers para uma única atividade, identificada por seu Activity_id.

Agora que obtivemos os dados que queríamos, a ideia é manter apenas o que precisamos e colocar isso em um Dataframe do Pandas.

A função de transformação abaixo extrai da lista de atividades os seguintes dados:

  1. O ID da atividade que é usado como identificador exclusivo para uma atividade.
  2. O número de elogios de cada atividade.
  3. A lista de todos os kudoers para uma atividade aproveitando a função get_kudos() em um loop.
  4. A distância de cada atividade.
  5. O tempo que cada atividade levou.
  6. O tipo de atividade.

⚠️ Existe uma limitação no uso da API Strava. Estamos limitados a 100 ligações a cada 15 minutos e 1000 ligações por dia.

Neste projeto, estamos chamando a API uma vez para obter a lista de atividades e, a seguir, uma vez por atividade para obter a lista de kudoers em cada uma.

Isso significa que, se você tiver mais de 100 atividades na janela considerada, o código tal como está não funcionará e você precisará modificá-lo ligeiramente para cumprir o limite de uso da API.

A única coisa que resta a fazer é capitalizar as funções que acabamos de construir e começar a traçar algumas coisas interessantes!

No meu caso, estou considerando minhas atividades em 2022, até esta data — 24/10/2022.

A partir de nossa estrutura de dados, é muito fácil obter alguns KPIs de alto nível em um determinado período:

KPIs de alto nível — Imagem do autor

Como obtivemos o tipo de esporte para cada atividade na seção anterior, também podemos investigar facilmente se certos tipos de atividades são mais propensos a receber elogios do que outros. Aqui está o número médio de elogios por tipo de atividade:

Número médio de elogios por tipo de atividade — Imagem do autor

Mesmo que não seja o tipo de atividade mais popular, a corrida foi o esporte onde tive mais dados e foi aqui que tentei me aprofundar um pouco mais. Podemos tentar entender por que uma atividade receberia mais elogios do que outra. Vejamos a possível correlação entre a distância da corrida e o número de elogios que a atividade receberia.

Acontece que parece haver uma correlação positiva, ou seja, quanto mais longa a corrida, maior o número de elogios, conforme mostra o gráfico abaixo.
É verdade que a significância estatística deste resultado é discutível, dado o pequeno número de pontos de dados que consideramos. A única conclusão certa aqui é que preciso correr mais.

Poderíamos ir mais longe na análise, olhando a influência de outras variáveis, mas deixo isso para outro artigo.

Correlação positiva entre a distância de uma corrida e o número de elogios que ela recebe — Gráfico do autor

Por fim, podemos traçar o “Gráfico de Kudos” no qual podemos ver quem são nossos principais apoiadores e avisá-los.
É claro que algumas pessoas são mais viciadas no Strava do que outras e darão elogios à medida que rolam para baixo no feed de atividades, enquanto outras abrirão o aplicativo apenas de vez em quando e darão elogios apenas às atividades mais recentes que virem.
Este gráfico não tem como objetivo julgar as pessoas por darem elogios ou não, trata-se simplesmente de ilustrar novos insights que você não veria em nenhum outro lugar - nem mesmo na versão premium do aplicativo.

O “Gráfico de Kudos” mostrando os principais apoiadores — Gráfico por autor

Sem dúvida, podemos fazer muito mais com todos os dados que podemos obter da API do Strava. Esta foi simplesmente uma primeira tentativa de responder a uma pergunta incomum e um bom exercício para fazer as coisas andarem.

Se você quiser analisar suas atividades no Strava e descobrir quem são seus principais apoiadores, o código completo pode ser encontrado aqui:
https://github.com/Guigs11/strava_kudos

Obrigado por ler até o final do artigo!
Sinta-se à vontade para deixar uma mensagem abaixo ou entre em contato comigo através
LinkedIn se você tiver alguma dúvida/observação!
Mais para vir!

Quem é o seu apoiador número 1 no Strava? Republicado da fonte https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Carimbo de hora:

Mais de Consultores Blockchain