Hvem er din nummer 1-supporter på Strava?

Udforsk Strava API og find ud af det med Python

I de sidste par år er Strava blevet min bedste app til at spore mine cykel- og løbeaktiviteter. En af de mange fede funktioner på appen er muligheden for, at dine venner kan give dig kudos for dine aktiviteter. Og nogle gange er disse kudos bare det moralske boost, du har brug for for at fortsætte.

I 2022, da jeg forberedte mig til en stigning i Alperne og brugte Strava mere regelmæssigt end før, bemærkede jeg, at nogle mennesker var mere gavmilde end andre med deres kudos. Men jeg havde ingen præcis idé om, hvem det var, og det fik mig til at tænke. Er der en måde at få et dybere kig på min statistik end hvad appen tilbyder? Det er der.

I denne artikel brugte jeg en meget almindelig "Extract Transform Load"-tilgang til at strukturere projektet. Jeg viser, hvordan det lykkedes mig at hente mine aktivitetsdata fra Strava (Extract), beregne ny indsigt (Transform) og bygge "Kudos Graph" og andre visualiseringer for at vide, hvem jeg skal takke for støtten (Load).

Jeg fandt over tid ud af, at denne tilgang var en fantastisk måde at organisere lignende dataprojekter på. En sidste bemærkning før du hopper ind, alt vist her er reproducerbart, og koden er tilgængelig på Github (link i slutningen af ​​artiklen), så du kan bygge din egen.

Lad os få kodning!

Den første ting, vi skal gøre, er at autentificere — dvs. få adgangstokenet fra Strava. Den følgende funktion vil gøre netop det med en POST-anmodning, der indeholder de detaljer, vi fik i det foregående afsnit (klient-id, klienthemmelighed, opdateringstoken og autorisationskode) til slutpunktet https://www.strava.com/oauth/token.

I dette afsnit opretter vi to funktioner til:

  1. Få listen over alle profilens aktiviteter.
    Ved at bruge det adgangstoken, vi tidligere fik, og angive to datoer, der definerer omfanget af aktiviteter, vi er interesserede i, får vi listen over alle aktiviteter mellem disse to datoer og deres hovedkarakteristika.
  2. Få listen over berømmere for en bestemt aktivitet.
    Desværre er listen over aktiviteternes kudoers ikke indeholdt i resultatet af den tidligere anmodning. Vi er nødt til at bygge funktionen get_kudos, som returnerer listen over kudoers for en enkelt aktivitet, identificeret ved dens aktivitets-id.

Nu hvor vi har fået de data, vi ønskede, er ideen kun at beholde det, vi har brug for, og lægge dette i en Pandas Dataframe.

Transformationsfunktionen nedenfor uddrager følgende data fra listen over aktiviteter:

  1. Aktivitets-id'et, der bruges som en unik identifikator for en aktivitet.
  2. Antallet af kudos for hver aktivitet.
  3. Listen over alle kudoere for en aktivitet ved at udnytte funktionen get_kudos() i en løkke.
  4. Afstanden for hver aktivitet.
  5. Den tid, hver aktivitet tog.
  6. Typen af ​​aktivitet.

⚠️ Der er en begrænsning i brugen af ​​Strava API. Vi er begrænset til 100 opkald hvert 15. minut og 1000 opkald om dagen.

I dette projekt kalder vi API'en én gang for at få listen over aktiviteter, og derefter én gang pr. aktivitet for at få listen over kudoere i hver enkelt.

Dette betyder, at hvis du har mere end 100 aktiviteter i det betragtede vindue, vil koden, som den er, ikke fungere, og du bliver nødt til at ændre den lidt for at overholde API-brugsgrænsen.

Det eneste, der er tilbage at gøre, er at udnytte de funktioner, vi lige har bygget, og begynde at plotte nogle interessante ting!

I mit tilfælde overvejer jeg mine aktiviteter i 2022 til denne dato - 24/10/2022.

Fra vores datastruktur er det super nemt at få et par højniveau KPI'er i den givne periode:

KPI'er på højt niveau — Billede efter forfatter

Fordi vi fik sportstypen for hver aktivitet i det foregående afsnit, kan vi også nemt undersøge, om visse typer aktiviteter er mere tilbøjelige til at modtage kudos end andre. Her er det gennemsnitlige antal kudos pr. type aktiviteter:

Gennemsnitligt antal kudos pr. type aktiviteter — Billede efter forfatter

Selvom det ikke skal være den mest populære type aktiviteter, var løb den sport, hvor jeg havde flest datapunkter, og det var derfor her, jeg prøvede at grave lidt mere. Vi kan prøve at forstå, hvorfor en aktivitet ville få mere ros end en anden. Lad os se på den mulige sammenhæng mellem løbeturens distance og antallet af kudos, aktiviteten ville få.

Det viser sig, at der ser ud til at være en positiv sammenhæng, dvs. jo længere løbetur, jo højere er antallet af kudos, som vist i grafen nedenfor.
Indrømmet, den statistiske signifikans af dette resultat kan diskuteres i betragtning af det lille antal datapunkter, vi overvejede. Den eneste sikre konklusion her er, at jeg skal løbe mere.

Vi kunne gå længere i analysen og se på indflydelsen af ​​andre variabler, men det lader jeg ligge til en anden artikel.

Positiv sammenhæng mellem distancen af ​​en løbetur og antallet af kudos, den får — Graf efter forfatter

Endelig kan vi plotte "Kudos-grafen", hvor vi kan se, hvem vores topsupportere er og give dem et råb.
Selvfølgelig er nogle mennesker mere afhængige af Strava end andre og vil give kudos, når de ruller ned i deres aktivitetsfeed, mens andre kun vil åbne appen en gang imellem og kun give kudos til de seneste aktiviteter, de tilfældigvis ser.
Denne graf handler på ingen måde om at dømme folk for at give kudos eller ej, det handler simpelthen om at illustrere ny indsigt, du ikke ville se andre steder - heller ikke i premiumversionen af ​​appen.

"Kudos-grafen", der viser de bedste tilhængere - Graf efter forfatter

Der er uden tvivl meget mere, vi kan gøre med alle de data, vi kan få fra Strava API. Dette var simpelthen det første skud på at besvare et usædvanligt spørgsmål og en god øvelse til at få tingene til at gå.

Hvis du vil analysere dine Strava-aktiviteter og finde ud af, hvem dine bedste tilhængere er, kan hele koden findes her:
https://github.com/Guigs11/strava_kudos

Tak fordi du læste med hele vejen til slutningen af ​​artiklen!
Du er velkommen til at lægge en besked nedenfor, eller kontakte mig igennem
LinkedIn hvis du har spørgsmål/bemærkninger!
Mere på vej!

Hvem er din nummer 1-supporter på Strava? Genudgivet fra kilde https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Tidsstempel:

Mere fra Blockchain-konsulenter