Hvem er din nummer 1-supporter på Strava?

Utforsk Strava API og finn ut med Python

I løpet av de siste årene ble Strava min favoritt-app for å spore sykkel- og løpeaktivitetene mine. En av de mange kule funksjonene på appen er muligheten for vennene dine til å gi deg ros for aktivitetene dine. Og noen ganger er disse takkene bare moralen du trenger for å fortsette.

I 2022, da jeg forberedte meg på en klatring i Alpene og brukte Strava mer regelmessig enn før, la jeg merke til at noen mennesker var mer rause enn andre med kudosene sine. Men jeg hadde ingen nøyaktig anelse om hvem det var, og dette fikk meg til å tenke. Er det en måte å se dypere på statistikken min enn det appen tilbyr? Vel, det er det.

I denne artikkelen brukte jeg en veldig vanlig "Extract Transform Load"-tilnærming for å strukturere prosjektet. Jeg viser hvordan jeg klarte å hente aktivitetsdataene mine fra Strava (Extract), beregne ny innsikt (Transform) og bygge "Kudos Graph" og andre visualiseringer for å vite hvem jeg skal takke for støtten (Load).

Jeg fant over tid at denne tilnærmingen var en fin måte å organisere lignende dataprosjekter på. En siste merknad før du hopper inn, alt som vises her er reproduserbart og koden er tilgjengelig på Github (lenke på slutten av artikkelen) slik at du kan bygge din egen.

La oss få koding!

Det første vi må gjøre er å autentisere — dvs. få tilgangstokenet fra Strava. Følgende funksjon vil gjøre nettopp det med en POST-forespørsel, som inneholder detaljene vi fikk i forrige seksjon (klient-ID, klienthemmelighet, oppdateringstoken og autorisasjonskode) til endepunktet https://www.strava.com/oauth/token.

I denne delen lager vi to funksjoner for å:

  1. Få listen over alle aktivitetene til profilen.
    Ved å bruke tilgangstokenet vi tidligere fikk og spesifisere to datoer som definerer omfanget av aktiviteter vi er interessert i, får vi listen over alle aktiviteter mellom disse to datoene og deres hovedkarakteristika.
  2. Få listen over berømmere for en bestemt aktivitet.
    Dessverre finnes ikke listen over aktivitetenes berømmelse i resultatet av den forrige forespørselen. Vi må bygge get_kudos-funksjonen som returnerer listen over kudoers for en enkelt aktivitet, identifisert av aktivitets-ID.

Nå som vi fikk dataene vi ønsket, er ideen å beholde bare det vi trenger og legge dette i en Pandas Dataframe.

Transformasjonsfunksjonen nedenfor trekker ut følgende data fra listen over aktiviteter:

  1. Aktivitets-ID-en som brukes som en unik identifikator for en aktivitet.
  2. Antall kudos for hver aktivitet.
  3. Listen over alle kudoers for en aktivitet ved å utnytte get_kudos()-funksjonen i en løkke.
  4. Avstanden til hver aktivitet.
  5. Tiden hver aktivitet tok.
  6. Type aktivitet.

⚠️ Det er en begrensning i bruken av Strava API. Vi er begrenset til 100 samtaler hvert 15. minutt og 1000 samtaler per dag.

I dette prosjektet kaller vi API-en én gang for å få listen over aktiviteter, og deretter én gang per aktivitet for å få listen over kudoers i hver enkelt.

Dette betyr at hvis du har mer enn 100 aktiviteter i det betraktede vinduet, vil koden som den er ikke fungere, og du må endre den litt for å overholde API-bruksgrensen.

Det eneste som gjenstår er å utnytte funksjonene vi nettopp har bygget og begynne å plotte noen interessante ting!

I mitt tilfelle vurderer jeg aktivitetene mine i 2022, til denne datoen – 24.

Fra vår datastruktur er det superenkelt å få noen få KPIer på høyt nivå i den gitte perioden:

KPI-er på høyt nivå — Bilde etter forfatter

Fordi vi fikk sportstypen for hver aktivitet i forrige seksjon, kan vi også enkelt undersøke om enkelte typer aktiviteter er mer utsatt for å motta ros enn andre. Her er gjennomsnittlig antall berømmelser per type aktiviteter:

Gjennomsnittlig antall berømmelser per type aktiviteter — Bilde etter forfatter

Selv om det ikke skal være den mest populære typen aktiviteter, var løping den sporten jeg hadde flest datapunkter, så det var her jeg prøvde å grave litt mer. Vi kan prøve å forstå hvorfor en aktivitet vil få mer honnør enn en annen. La oss se på den mulige sammenhengen mellom avstanden til løpeturen og antall berømmelser aktiviteten vil få.

Det viser seg at det ser ut til å være en positiv korrelasjon, dvs. jo lengre løpetur, desto høyere antall kudos, som vist i grafen under.
Riktignok kan den statistiske signifikansen av dette resultatet diskuteres gitt det lille antallet datapunkter vi vurderte. Den eneste sikre konklusjonen her er at jeg må løpe mer.

Vi kan gå videre i analysen og se på påvirkningen av andre variabler, men jeg lar det ligge til en annen artikkel.

Positiv korrelasjon mellom avstanden til en løpetur og antall kudos den får — Graf etter forfatter

Til slutt kan vi plotte "Kudos-grafen" der vi kan se hvem våre toppsupportere er og gi dem et rop.
Selvfølgelig er noen mennesker mer avhengige av Strava enn andre og vil gi kudos når de ruller nedover aktivitetsfeeden sin, mens andre bare vil åpne appen en gang i blant og bare gi kudos til de siste aktivitetene de tilfeldigvis ser.
Denne grafen handler på ingen måte om å dømme folk for å gi kudos eller ikke, det handler rett og slett om å illustrere ny innsikt du ikke vil se andre steder – ikke engang i premiumversjonen av appen.

"Kudos-grafen" som viser de beste supporterne - Graf etter forfatter

Uten tvil er det mye mer vi kan gjøre med alle dataene vi kan få fra Strava API. Dette var rett og slett et første skudd til å svare på et uvanlig spørsmål og en god øvelse for å få ting til å gå rundt.

Hvis du ønsker å analysere dine Strava-aktiviteter og finne ut hvem dine beste støttespillere er, kan du finne hele koden her:
https://github.com/Guigs11/strava_kudos

Takk for at du leste hele veien til slutten av artikkelen!
Legg gjerne igjen en melding nedenfor, eller ta kontakt med meg gjennom
Linkedin hvis du har spørsmål/merknader!
Mer kommer!

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

<!–

->

Tidstempel:

Mer fra Blockchain-konsulenter