Wie is jouw nummer 1 supporter op Strava?

Verken de Strava API en ontdek het met Python

De afgelopen jaren is Strava mijn go-to-app geworden om mijn fiets- en hardloopactiviteiten bij te houden. Een van de vele coole functies van de app is de mogelijkheid voor je vrienden om je complimenten te geven voor je activiteiten. En soms zijn deze complimenten slechts de morele boost die je nodig hebt om door te gaan.

Toen ik me in 2022 voorbereidde op een klim in de Alpen en Strava regelmatiger gebruikte dan voorheen, merkte ik dat sommige mensen genereuzer waren met hun complimenten dan anderen. Maar ik had geen precies idee wie het was en dit zette mij aan het denken. Is er een manier om mijn statistieken dieper te bekijken dan wat de app biedt? Welnu, dat is zo.

In dit artikel heb ik een veel voorkomende ‘Extract Transform Load’-aanpak gebruikt om het project te structureren. Ik laat zien hoe ik de gegevens van mijn activiteiten uit Strava heb gehaald (Extract), nieuwe inzichten heb kunnen berekenen (Transform) en de “Kudos Graph” en andere visualisaties heb kunnen bouwen om te weten wie ik moet bedanken voor de steun (Load).

Na verloop van tijd ontdekte ik dat deze aanpak een geweldige manier was om vergelijkbare dataprojecten te organiseren. Nog een laatste opmerking voordat we erin duiken: alles wat hier wordt getoond is reproduceerbaar en de code is beschikbaar op Github (link aan het einde van het artikel), zodat je je eigen code kunt bouwen.

Laten we gaan coderen!

Het eerste dat we moeten doen is authenticeren, dat wil zeggen het toegangstoken van Strava verkrijgen. De volgende functie doet precies dat met een POST-verzoek, met daarin de details die we in de vorige sectie hebben gekregen (client-ID, clientgeheim, vernieuwingstoken en autorisatiecode) naar het eindpunt https://www.strava.com/oauth/token.

In deze sectie maken we twee functies om:

  1. Haal de lijst op met alle activiteiten van het profiel.
    Met behulp van het toegangstoken dat we eerder hebben gekregen en door twee datums te specificeren die de reikwijdte van de activiteiten waarin we geïnteresseerd zijn definiëren, krijgen we een lijst met alle activiteiten tussen deze twee datums en hun belangrijkste kenmerken.
  2. Ontvang de lijst met complimenten voor een specifieke activiteit.
    Helaas is de lijst met complimenten voor de activiteiten niet opgenomen in het resultaat van het vorige verzoek. We moeten de functie get_kudos bouwen die de lijst met kudoers voor een enkele activiteit retourneert, geïdentificeerd door de activiteit_id.

Nu we de gewenste gegevens hebben, is het de bedoeling om alleen de gegevens te behouden die we nodig hebben en dit in een Pandas Dataframe te plaatsen.

De transformatiefunctie hieronder haalt uit de lijst met activiteiten de volgende gegevens:

  1. De activiteits-ID die wordt gebruikt als unieke identificatie voor een activiteit.
  2. Het aantal complimenten voor elke activiteit.
  3. De lijst met alle kudoers voor een activiteit door gebruik te maken van de get_kudos() functie in een lus.
  4. De afstand van elke activiteit.
  5. De tijd die elke activiteit kostte.
  6. Het soort activiteit.

⚠️ Er is een beperking in het gebruik van de Strava API. We zijn beperkt tot 100 oproepen per 15 minuten en 1000 oproepen per dag.

In dit project roepen we de API één keer aan om de lijst met activiteiten op te halen, en vervolgens één keer per activiteit om de lijst met complimenten in elke activiteit te krijgen.

Dit betekent dat als u meer dan 100 activiteiten in het beschouwde venster heeft, de code zoals die is niet zal werken en dat u deze enigszins zult moeten aanpassen om te voldoen aan de API-gebruikslimiet.

Het enige wat we nog moeten doen is profiteren van de functies die we zojuist hebben gebouwd en beginnen met het plannen van een aantal interessante dingen!

In mijn geval overweeg ik mijn activiteiten in 2022, tot op heden – 24/10/2022.

Vanuit onze datastructuur is het super eenvoudig om een ​​aantal KPI’s op hoog niveau te verkrijgen in de gegeven periode:

KPI's op hoog niveau — Afbeelding door auteur

Omdat we in de vorige sectie het sporttype voor elke activiteit hebben gekregen, kunnen we ook gemakkelijk onderzoeken of bepaalde soorten activiteiten meer kans maken op complimenten dan andere. Hier vindt u het gemiddelde aantal complimenten per type activiteit:

Gemiddeld aantal complimenten per type activiteit — Afbeelding door auteur

Zelfs als het niet de meest populaire soort activiteit zal zijn, was hardlopen de sport waarbij ik de meeste datapunten had en dus probeerde ik hier wat meer in te duiken. We kunnen proberen te begrijpen waarom de ene activiteit meer complimenten krijgt dan de andere. Laten we eens kijken naar de mogelijke correlatie tussen de afstand van de run en het aantal complimenten dat de activiteit zou opleveren.

Het blijkt dat er een positieve correlatie lijkt te zijn, dat wil zeggen: hoe langer de run, hoe hoger het aantal complimenten, zoals weergegeven in de onderstaande grafiek.
Toegegeven, de statistische significantie van dit resultaat is discutabel gezien het kleine aantal datapunten dat we hebben overwogen. De enige zekere conclusie hier is dat ik meer moet rennen.

We zouden verder kunnen gaan in de analyse en kijken naar de invloed van andere variabelen, maar dat laat ik over aan een ander artikel.

Positieve correlatie tussen de afstand van een run en het aantal complimenten dat het krijgt - Grafiek per auteur

Ten slotte kunnen we de “Kudos-grafiek” uitzetten, waarin we kunnen zien wie onze belangrijkste supporters zijn en hen een schreeuw kunnen geven.
Natuurlijk zijn sommige mensen meer verslaafd aan Strava dan anderen en geven ze complimenten terwijl ze door hun activiteitenfeed scrollen, terwijl anderen de app slechts af en toe openen en alleen complimenten geven aan de meest recente activiteiten die ze toevallig zien.
Deze grafiek gaat op geen enkele manier over het beoordelen van mensen omdat ze wel of geen complimenten geven, het gaat gewoon over het illustreren van nieuwe inzichten die je nergens anders zou zien – zelfs niet in de premiumversie van de app.

De “Kudos-grafiek” met de beste supporters – grafiek per auteur

Er is ongetwijfeld veel meer dat we kunnen doen met alle gegevens die we uit de Strava API kunnen halen. Dit was gewoon een eerste kans om een ​​ongebruikelijke vraag te beantwoorden en een goede oefening om dingen op gang te krijgen.

Als je je Strava-activiteiten wilt analyseren en wilt weten wie je grootste supporters zijn, kun je de volledige code hier vinden:
https://github.com/Guigs11/strava_kudos

Bedankt voor het lezen tot het einde van het artikel!
Laat hieronder gerust een bericht achter, of neem contact met mij op via
LinkedIn als u vragen/opmerkingen heeft!
Meer volgt nog!

Wie is jouw nummer 1 supporter op Strava? Opnieuw gepubliceerd vanaf bron https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Tijdstempel:

Meer van Blockchain-adviseurs