Ποιος είναι ο νούμερο 1 υποστηρικτής σας στο Strava;

Εξερευνήστε το Strava API και μάθετε με την Python

Τα τελευταία χρόνια το Strava έγινε η εφαρμογή μου για να παρακολουθώ τις δραστηριότητές μου στο ποδήλατο και το τρέξιμο. Ένα από τα πολλά ωραία χαρακτηριστικά της εφαρμογής είναι η δυνατότητα των φίλων σας να σας αποδίδουν συγχαρητήρια για τις δραστηριότητές σας. Και μερικές φορές, αυτά τα εύσημα είναι απλώς η τόνωση του ηθικού που χρειάζεστε για να συνεχίσετε.

Το 2022 καθώς προετοιμαζόμουν για μια ανάβαση στις Άλπεις και χρησιμοποιούσα το Strava πιο τακτικά από πριν, παρατήρησα ότι μερικοί άνθρωποι ήταν πιο γενναιόδωροι από άλλους με τα εύσημα τους. Αλλά δεν είχα ακριβή ιδέα για το ποιος ήταν και αυτό με έβαλε σε σκέψεις. Υπάρχει τρόπος να ρίξω μια πιο βαθιά ματιά στα στατιστικά μου από αυτά που προσφέρει η εφαρμογή; Λοιπόν, υπάρχει.

Σε αυτό το άρθρο, χρησιμοποίησα μια πολύ κοινή προσέγγιση «Εξαγωγή Μετασχηματισμού Φορτίου» για τη δομή του έργου. Δείχνω πώς κατάφερα να λάβω τα δεδομένα των δραστηριοτήτων μου από το Strava (Εξαγωγή), να υπολογίσω νέες πληροφορίες (Transform) και να δημιουργήσω το "Kudos Graph" και άλλες απεικονίσεις για να ξέρω ποιον να ευχαριστήσω για την υποστήριξη (Load).

Διαπίστωσα με την πάροδο του χρόνου ότι αυτή η προσέγγιση ήταν ένας πολύ καλός τρόπος για να οργανωθούν παρόμοια έργα δεδομένων. Μια τελευταία σημείωση πριν μεταβείτε, όλα όσα εμφανίζονται εδώ είναι αναπαραγόμενα και ο κώδικας είναι διαθέσιμος στο Github (σύνδεσμος στο τέλος του άρθρου), ώστε να μπορείτε να δημιουργήσετε το δικό σας.

Ας πάρουμε κωδικοποίηση!

Το πρώτο πράγμα που πρέπει να κάνουμε είναι να ελέγξουμε την ταυτότητα — δηλαδή να λάβουμε το διακριτικό πρόσβασης από το Strava. Η ακόλουθη συνάρτηση θα κάνει ακριβώς αυτό με ένα αίτημα POST, που περιέχει τα στοιχεία που λάβαμε στην προηγούμενη ενότητα (αναγνωριστικό πελάτη, μυστικό πελάτη, διακριτικό ανανέωσης και κωδικός εξουσιοδότησης) στο τελικό σημείο https://www.strava.com/oauth/token.

Σε αυτή την ενότητα, δημιουργούμε δύο συναρτήσεις για:

  1. Λάβετε τη λίστα με όλες τις δραστηριότητες του προφίλ.
    Χρησιμοποιώντας το διακριτικό πρόσβασης που πήραμε προηγουμένως και προσδιορίζοντας δύο ημερομηνίες που καθορίζουν το εύρος των δραστηριοτήτων που μας ενδιαφέρουν, παίρνουμε τη λίστα όλων των δραστηριοτήτων μεταξύ αυτών των δύο ημερομηνιών και των κύριων χαρακτηριστικών τους.
  2. Λάβετε τη λίστα με τους επαίνους μιας συγκεκριμένης δραστηριότητας.
    Δυστυχώς, ο κατάλογος των επαίνων των δραστηριοτήτων δεν περιλαμβάνεται στο αποτέλεσμα του προηγούμενου αιτήματος. Πρέπει να δημιουργήσουμε τη συνάρτηση get_kudos, η οποία επιστρέφει τη λίστα των kudoers για μια μεμονωμένη δραστηριότητα, που προσδιορίζεται από το activity_id της.

Τώρα που πήραμε τα δεδομένα που θέλαμε, η ιδέα είναι να κρατήσουμε μόνο ό,τι χρειαζόμαστε και να το τοποθετήσουμε σε ένα Pandas Dataframe.

Η παρακάτω συνάρτηση μετασχηματισμού εξάγει από τη λίστα των δραστηριοτήτων τα ακόλουθα δεδομένα:

  1. Το αναγνωριστικό δραστηριότητας που χρησιμοποιείται ως μοναδικό αναγνωριστικό για μια δραστηριότητα.
  2. Ο αριθμός των επαίνων κάθε δραστηριότητας.
  3. Η λίστα όλων των επαγγελματιών για μια δραστηριότητα αξιοποιώντας τη συνάρτηση get_kudos() σε έναν βρόχο.
  4. Η απόσταση κάθε δραστηριότητας.
  5. Ο χρόνος που χρειαζόταν κάθε δραστηριότητα.
  6. Το είδος της δραστηριότητας.

⚠️ Υπάρχει περιορισμός στη χρήση του Strava API. Περιοριζόμαστε σε 100 κλήσεις κάθε 15 λεπτά και 1000 κλήσεις την ημέρα.

Σε αυτό το έργο, καλούμε το API μία φορά για να λάβουμε τη λίστα με τις δραστηριότητες και, στη συνέχεια, μία φορά ανά δραστηριότητα για να λάβουμε τη λίστα με τους ευγενείς σε κάθε μία.

Αυτό σημαίνει ότι εάν έχετε περισσότερες από 100 δραστηριότητες στο εξεταζόμενο παράθυρο, ο κώδικας ως έχει δεν θα λειτουργήσει και θα πρέπει να τον τροποποιήσετε ελαφρώς για να συμμορφώνεται με το όριο χρήσης API.

Το μόνο που μένει να κάνουμε είναι να αξιοποιήσουμε τις λειτουργίες που μόλις δημιουργήσαμε και να αρχίσουμε να σχεδιάζουμε μερικά ενδιαφέροντα πράγματα!

Στην περίπτωσή μου, εξετάζω τις δραστηριότητές μου το 2022, μέχρι σήμερα — 24/10/2022.

Από τη δομή δεδομένων μας, είναι εξαιρετικά εύκολο να λάβουμε μερικούς KPI υψηλού επιπέδου τη δεδομένη περίοδο:

KPI υψηλού επιπέδου — Εικόνα από συγγραφέα

Επειδή πήραμε τον τύπο αθλητισμού για κάθε δραστηριότητα στην προηγούμενη ενότητα, μπορούμε επίσης εύκολα να διερευνήσουμε εάν ορισμένοι τύποι δραστηριοτήτων είναι πιο επιρρεπείς στο να λάβουν επαίνους από άλλους. Ακολουθεί ο μέσος αριθμός επαίνων ανά τύπο δραστηριοτήτων:

Μέσος αριθμός επαίνων ανά τύπο δραστηριοτήτων — Εικόνα κατά συγγραφέα

Ακόμα κι αν δεν πρόκειται να είναι ο πιο δημοφιλής τύπος δραστηριοτήτων, το τρέξιμο ήταν το άθλημα στο οποίο είχα τα περισσότερα σημεία δεδομένων και γι' αυτό προσπάθησα να σκάψω λίγο περισσότερο. Μπορούμε να προσπαθήσουμε να καταλάβουμε γιατί μια δραστηριότητα θα έπαιρνε περισσότερα εύσημα από μια άλλη. Ας δούμε την πιθανή συσχέτιση μεταξύ της απόστασης του τρεξίματος και του αριθμού των επαίνων που θα έπαιρνε η δραστηριότητα.

Αποδεικνύεται ότι φαίνεται να υπάρχει θετική συσχέτιση, δηλαδή όσο μεγαλύτερη είναι η διαδρομή, τόσο μεγαλύτερος είναι ο αριθμός των επαίνων, όπως φαίνεται στο παρακάτω γράφημα.
Ομολογουμένως, η στατιστική σημασία αυτού του αποτελέσματος είναι αμφισβητήσιμη δεδομένου του μικρού αριθμού σημείων δεδομένων που εξετάσαμε. Το μόνο σίγουρο συμπέρασμα εδώ είναι ότι πρέπει να τρέξω περισσότερο.

Θα μπορούσαμε να προχωρήσουμε περαιτέρω στην ανάλυση, εξετάζοντας την επιρροή άλλων μεταβλητών, αλλά θα το αφήσω για άλλο άρθρο.

Θετική συσχέτιση μεταξύ της απόστασης ενός τρεξίματος και του αριθμού των επαίνων που λαμβάνει — Γράφημα ανά συγγραφέα

Τέλος, μπορούμε να σχεδιάσουμε το «Γράφημα συγχαρητηρίων» στο οποίο μπορούμε να δούμε ποιοι είναι οι κορυφαίοι υποστηρικτές μας και να τους φωνάξουμε.
Φυσικά, μερικοί άνθρωποι είναι πιο εθισμένοι στο Strava από άλλους και θα αποδίδουν συγχαρητήρια καθώς κάνουν κύλιση προς τα κάτω στη ροή δραστηριοτήτων τους, ενώ άλλοι θα ανοίγουν την εφαρμογή μόνο μια στο τόσο και θα αποδίδουν συγχαρητήρια μόνο στις πιο πρόσφατες δραστηριότητες που τυχαίνει να δουν.
Αυτό το γράφημα δεν είναι σε καμία περίπτωση για να κρίνεις τους ανθρώπους για το ότι δίνουν συγχαρητήρια ή όχι, είναι απλώς για την απεικόνιση νέων πληροφοριών που δεν θα έβλεπες πουθενά αλλού — ούτε καν στην premium έκδοση της εφαρμογής.

Το «Γράφημα συγχαρητηρίων» που δείχνει τους κορυφαίους υποστηρικτές — Γράφημα ανά συγγραφέα

Χωρίς αμφιβολία, μπορούμε να κάνουμε πολλά περισσότερα με όλα τα δεδομένα που μπορούμε να λάβουμε από το Strava API. Αυτή ήταν απλώς μια πρώτη ευκαιρία για να απαντήσετε σε μια ασυνήθιστη ερώτηση και μια καλή άσκηση για να ξεκινήσετε τα πράγματα.

Αν θέλετε να αναλύσετε τις δραστηριότητές σας στο Strava και να καταλάβετε ποιοι είναι οι κορυφαίοι υποστηρικτές σας, μπορείτε να βρείτε ολόκληρο τον κώδικα εδώ:
https://github.com/Guigs11/strava_kudos

Ευχαριστούμε που διαβάσατε μέχρι το τέλος του άρθρου!
Μη διστάσετε να αφήσετε ένα μήνυμα παρακάτω ή να επικοινωνήσετε μαζί μου μέσω
LinkedIn αν έχετε οποιεσδήποτε ερωτήσεις / παρατηρήσεις!
Περισσότερα ακολουθούν!

Ποιος είναι ο νούμερο 1 υποστηρικτής σας στο Strava; Αναδημοσίευση από την Πηγή https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 μέσω https://towardsdatascience.com/feed

Si al principi no tens èxit, aleshores el paracaigudisme no és per a tu.

->

Σφραγίδα ώρας:

Περισσότερα από Σύμβουλοι Blockchain