מי התומך מספר 1 שלך בסטרבה?

חקור את Strava API וגלה עם Python

בשנים האחרונות Strava הפכה לאפליקציית הבחירה שלי למעקב אחר פעילויות הרכיבה והריצה שלי. אחת התכונות המגניבות הרבות באפליקציה היא היכולת של החברים שלך לתת לך כבוד על הפעילויות שלך. ולפעמים, השבחים האלה הם רק חיזוק המורל שאתה צריך כדי להמשיך.

בשנת 2022, כשהתכוננתי לטיפוס בהרי האלפים והשתמשתי בסטרבה באופן קבוע יותר מבעבר, שמתי לב שיש אנשים שהיו נדיבים יותר מאחרים עם הכבוד שלהם. אבל לא היה לי מושג מדויק מי זה וזה גרם לי לחשוב. האם יש דרך להסתכל לעומק על הנתונים הסטטיסטיים שלי ממה שהאפליקציה מציעה? ובכן, יש.

במאמר זה השתמשתי בגישה נפוצה מאוד של "Extract Transform Load" כדי לבנות את הפרויקט. אני מראה כיצד הצלחתי להשיג את נתוני הפעילויות שלי מ-Strava (Extract), לחשב תובנות חדשות (Transform) ולבנות את "גרף הכבוד" והדמיות אחרות כדי לדעת למי להודות על התמיכה (Load).

גיליתי עם הזמן שגישה זו היא דרך מצוינת לארגן פרויקטי נתונים דומים. הערה אחרונה לפני קפיצה, כל מה שמוצג כאן ניתן לשחזור והקוד זמין ב-Github (קישור בסוף המאמר) כך שתוכל לבנות משלך.

בואו לקבל קידוד!

הדבר הראשון שעלינו לעשות הוא לבצע אימות - כלומר לקבל את אסימון הגישה מ-Strava. הפונקציה הבאה תעשה בדיוק את זה עם בקשת POST, המכילה את הפרטים שקיבלנו בסעיף הקודם (מזהה לקוח, סוד לקוח, אסימון רענון וקוד הרשאה) לנקודת הקצה https://www.strava.com/oauth/token.

בחלק זה, אנו יוצרים שתי פונקציות כדי:

  1. קבלו את רשימת כל הפעילויות של הפרופיל.
    באמצעות אסימון הגישה שקיבלנו בעבר וציון שני תאריכים המגדירים את היקף הפעילויות שאנו מעוניינים בהן, נקבל את רשימת כל הפעילויות בין שני התאריכים הללו ואת המאפיינים העיקריים שלהן.
  2. קבלו את רשימת המשבחים של פעילות ספציפית.
    לרוע המזל, רשימת השבחים של הפעילויות אינה כלולה בתוצאת הבקשה הקודמת. עלינו לבנות את הפונקציה get_kudos אשר מחזירה את רשימת המשבחים עבור פעילות בודדת, מזוהה על ידי ה-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 ברמה גבוהה - תמונה לפי מחבר

מכיוון שקיבלנו את סוג הספורט עבור כל פעילות בסעיף הקודם, נוכל גם לחקור בקלות אם סוגים מסוימים של פעילויות נוטים יותר לזכות בשבחים מאחרים. להלן מספר השבחים הממוצע לכל סוג פעילויות:

מספר הערכה ממוצע לכל סוג פעילויות - תמונה לפי מחבר

גם אם זה לא יהיה סוג הפעילויות הפופולרי ביותר, הריצה הייתה הספורט שבו היו לי הכי הרבה נקודות נתונים ולכן זה המקום שבו ניסיתי לחפור קצת יותר. אנו יכולים לנסות להבין מדוע פעילות תקבל יותר כבוד מאחרות. בואו נסתכל על המתאם האפשרי בין מרחק הריצה למספר השבחים שהפעילות תקבל.

מסתבר שנראה שיש מתאם חיובי, כלומר ככל שהריצה ארוכה יותר כך מספר השבחים גבוה יותר, כפי שמוצג בגרף למטה.
נכון, המובהקות הסטטיסטית של תוצאה זו נתונה לוויכוח בהתחשב במספר הקטן של נקודות הנתונים ששקלנו. המסקנה היחידה כאן היא שאני צריך לרוץ יותר.

אנחנו יכולים ללכת רחוק יותר בניתוח, להסתכל על ההשפעה של משתנים אחרים, אבל אני אשאיר את זה למאמר אחר.

מתאם חיובי בין מרחק הריצה למספר השבחים שהיא מקבלת - גרף לפי מחבר

לבסוף, נוכל לשרטט את "גרף הכבוד" שבו נוכל לראות מי הם התומכים המובילים שלנו ולתת להם צעקה.
כמובן שחלק מהאנשים מכורים יותר לסטרבה מאחרים ויעניקו כבוד כשהם גוללים את פיד הפעילות שלהם, בעוד שאחרים יפתחו את האפליקציה רק ​​מדי פעם ויעניקו כבוד רק לפעילויות האחרונות שהם ראו במקרה.
הגרף הזה אינו מתייחס בשום אופן לשפוט אנשים על כך שהם נותנים כבוד או לא, הוא פשוט על המחשה של תובנות חדשות שלא תראו בשום מקום אחר - אפילו לא בגרסת הפרימיום של האפליקציה.

"גרף הכבוד" מציג את התומכים המובילים - גרף לפי מחבר

אין ספק שיש הרבה יותר שאנחנו יכולים לעשות עם כל הנתונים שאנחנו יכולים לקבל מה-API של Strava. זו הייתה פשוט הזדמנות ראשונה לענות על שאלה יוצאת דופן ותרגיל טוב להניע דברים.

אם אתה רוצה לנתח את פעילות Strava שלך ולהבין מי הם התומכים המובילים שלך, ניתן למצוא את הקוד כולו כאן:
https://github.com/Guigs11/strava_kudos

תודה שקראתם עד סוף המאמר!
אל תהסס להשאיר הודעה למטה, או לפנות אליי דרך
לינקדין אם יש לך שאלות/הערות!
עוד לבוא!

מי התומך מספר 1 שלך בסטרבה? פורסם מחדש ממקור https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 דרך https://towardsdatascience.com/feed

<!–

->

בול זמן:

עוד מ יועצי בלוקצ'יין