Qui est votre supporter numéro 1 sur Strava ?

Explorez l'API Strava et découvrez avec Python

Au cours des dernières années, Strava est devenu mon application incontournable pour suivre mes activités de cyclisme et de course à pied. L'une des nombreuses fonctionnalités intéressantes de l'application est la possibilité pour vos amis de vous féliciter pour vos activités. Et parfois, ces félicitations ne sont que le coup de pouce moral dont vous avez besoin pour continuer.

En 2022, alors que je me préparais pour une ascension dans les Alpes et que j'utilisais Strava plus régulièrement qu'avant, j'ai remarqué que certaines personnes étaient plus généreuses que d'autres avec leurs félicitations. Mais je n’avais aucune idée précise de qui il s’agissait et cela m’a fait réfléchir. Existe-t-il un moyen d'avoir un aperçu plus approfondi de mes statistiques que ce que propose l'application ? Eh bien, il y en a.

Dans cet article, j'ai utilisé une approche très courante « Extraire la charge de transformation » pour structurer le projet. Je montre comment j'ai réussi à obtenir mes données d'activités à partir de Strava (Extraire), à ​​calculer de nouvelles informations (Transformer) et à créer le « Kudos Graph » et d'autres visualisations pour savoir qui remercier pour le soutien (Charger).

J'ai découvert au fil du temps que cette approche était un excellent moyen d'organiser des projets de données similaires. Une dernière remarque avant de vous lancer, tout ce qui est présenté ici est reproductible et le code est disponible sur Github (lien en fin d'article) pour que vous puissiez créer le vôtre.

Passons au codage !

La première chose que nous devons faire est de nous authentifier, c'est-à-dire d'obtenir le jeton d'accès de Strava. La fonction suivante fera exactement cela avec une requête POST, contenant les détails que nous avons obtenus dans la section précédente (identifiant client, secret client, jeton d'actualisation et code d'autorisation) vers le point de terminaison. https://www.strava.com/oauth/token.

Dans cette section, nous créons deux fonctions pour :

  1. Obtenez la liste de toutes les activités du profil.
    En utilisant le jeton d'accès que nous avons obtenu précédemment et en précisant deux dates définissant le périmètre des activités qui nous intéressent, nous obtenons la liste de toutes les activités entre ces deux dates et leurs principales caractéristiques.
  2. Obtenez la liste des félicitations d’une activité spécifique.
    Malheureusement, la liste des félicitations des activités ne figure pas dans le résultat de la demande précédente. Nous devons construire la fonction get_kudos qui renvoie la liste des félicitations pour une seule activité, identifiée par son Activity_id.

Maintenant que nous avons obtenu les données que nous voulions, l'idée est de conserver uniquement ce dont nous avons besoin et de les mettre dans un Pandas Dataframe.

La fonction de transformation ci-dessous extrait de la liste des activités les données suivantes :

  1. L'identifiant d'activité qui est utilisé comme identifiant unique pour une activité.
  2. Le nombre de félicitations pour chaque activité.
  3. La liste de tous les félicitations pour une activité en exploitant la fonction get_kudos() dans une boucle.
  4. La distance de chaque activité.
  5. Le temps que prenait chaque activité.
  6. Le type d'activité.

⚠️ Il existe une limitation dans l'utilisation de l'API Strava. Nous sommes limités à 100 appels toutes les 15 minutes et 1000 XNUMX appels par jour.

Dans ce projet, nous appelons l'API une fois pour obtenir la liste des activités, puis une fois par activité pour obtenir la liste des félicitations dans chacune d'elles.

Cela signifie que si vous avez plus de 100 activités dans la fenêtre considérée, le code tel quel ne fonctionnera pas et vous devrez le modifier légèrement pour respecter la limite d'utilisation de l'API.

Il ne reste plus qu'à capitaliser sur les fonctions que nous venons de construire et à commencer à tracer des choses intéressantes !

Dans mon cas, je considère mes activités en 2022, à cette date — 24/10/2022.

À partir de notre structure de données, il est très simple d’obtenir quelques KPI de haut niveau sur la période donnée :

KPI de haut niveau — Image de l'auteur

Étant donné que nous avons obtenu le type de sport pour chaque activité dans la section précédente, nous pouvons également facilement déterminer si certains types d'activités sont plus susceptibles de recevoir des félicitations que d'autres. Voici le nombre moyen de félicitations par type d’activités :

Nombre moyen de félicitations par type d'activités — Image de l'auteur

Même si ce n’est pas le type d’activité le plus populaire, la course à pied est le sport pour lequel j’ai eu le plus de données et c’est donc là que j’ai essayé de creuser un peu plus. Nous pouvons essayer de comprendre pourquoi une activité recevrait plus de félicitations qu’une autre. Examinons la corrélation possible entre la distance parcourue et le nombre de félicitations que l'activité obtiendrait.

Il s'avère qu'il semble y avoir une corrélation positive, c'est-à-dire que plus la course est longue, plus le nombre de félicitations est élevé, comme le montre le graphique ci-dessous.
Certes, la signification statistique de ce résultat est discutable étant donné le petit nombre de points de données que nous avons pris en compte. La seule conclusion certaine ici est que je dois courir davantage.

On pourrait aller plus loin dans l'analyse, en s'intéressant à l'influence d'autres variables, mais je laisse cela pour un autre article.

Corrélation positive entre la distance d'une course et le nombre de félicitations obtenues — Graphique de l'auteur

Enfin, nous pouvons tracer le « Kudos Graph » dans lequel nous pouvons voir qui sont nos meilleurs supporters et les saluer.
Bien sûr, certaines personnes sont plus accros à Strava que d'autres et donneront des félicitations lorsqu'elles feront défiler leur flux d'activités, tandis que d'autres n'ouvriront l'application que de temps en temps et donneront des félicitations uniquement aux activités les plus récentes qu'elles voient.
Ce graphique ne vise en aucun cas à juger les gens pour avoir donné des félicitations ou non, il s'agit simplement d'illustrer de nouvelles informations que vous ne verriez nulle part ailleurs, pas même dans la version premium de l'application.

Le « Kudos Graph » montrant les meilleurs supporters — Graphique par auteur

Il ne fait aucun doute que nous pouvons faire bien plus avec toutes les données que nous pouvons obtenir de l'API Strava. Il s’agissait simplement d’une première tentative de réponse à une question inhabituelle et d’un bon exercice pour faire avancer les choses.

Si vous souhaitez analyser vos activités Strava et déterminer qui sont vos principaux supporters, l'intégralité du code peut être trouvée ici :
https://github.com/Guigs11/strava_kudos

Merci d'avoir lu jusqu'à la fin de l'article !
N'hésitez pas à laisser un message ci-dessous ou à me contacter via
LinkedIn si vous avez des questions/remarques !
Plus à venir!

Qui est votre supporter numéro 1 sur Strava ? Republié à partir de la source https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Horodatage:

Plus de Consultants en blockchain