ใครคือผู้สนับสนุนอันดับ 1 ของคุณใน Strava?

สำรวจ Strava API และค้นหาด้วย Python

ในช่วงไม่กี่ปีที่ผ่านมา Strava กลายเป็นแอพที่ฉันชอบในการติดตามกิจกรรมการปั่นจักรยานและการวิ่งของฉัน หนึ่งในคุณสมบัติเจ๋ง ๆ มากมายในแอพคือความสามารถสำหรับเพื่อนของคุณที่จะให้ความชื่นชมยินดีสำหรับกิจกรรมของคุณ และบางครั้งความรุ่งโรจน์เหล่านี้เป็นเพียงกำลังใจในการทำงานต่อไป

ในปี 2022 ขณะที่ฉันกำลังเตรียมตัวสำหรับการปีนเขาในเทือกเขาแอลป์และใช้ Strava บ่อยกว่าเมื่อก่อน ฉันสังเกตเห็นว่าบางคนมีน้ำใจมากกว่าคนอื่นๆ ด้วยความชื่นชมยินดี แต่ฉันไม่มีความคิดที่แน่ชัดว่าเป็นใคร และสิ่งนี้ทำให้ฉันคิด มีวิธีดูสถิติของฉันให้ลึกซึ้งกว่าที่แอพเสนอหรือไม่? ก็มีนะ

ในบทความนี้ ฉันใช้วิธี "Extract Transform Load" ที่ใช้กันทั่วไปในการจัดโครงสร้างโครงการ ฉันกำลังแสดงวิธีที่ฉันจัดการเพื่อรับข้อมูลกิจกรรมจาก Strava (แยก) คำนวณข้อมูลเชิงลึกใหม่ (แปลง) และสร้าง “กราฟรุ่งโรจน์” และการแสดงภาพอื่นๆ เพื่อให้รู้ว่าใครควรขอบคุณสำหรับการสนับสนุน (โหลด)

ฉันพบว่าวิธีการนี้เป็นวิธีที่ยอดเยี่ยมในการจัดระเบียบโครงการข้อมูลที่คล้ายกัน บันทึกย่อสุดท้ายก่อนที่จะกระโดดเข้ามา ทุกอย่างที่แสดงที่นี่สามารถทำซ้ำได้และรหัสมีอยู่ใน 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 ระดับสูง — รูปภาพโดยผู้เขียน

เนื่องจากเราได้รับประเภทกีฬาสำหรับแต่ละกิจกรรมในส่วนก่อนหน้านี้ เราจึงสามารถตรวจสอบได้อย่างง่ายดายว่ากิจกรรมบางประเภทมีแนวโน้มที่จะได้รับความชื่นชอบมากกว่ากิจกรรมอื่นๆ หรือไม่ จำนวนคำชื่นชมโดยเฉลี่ยต่อประเภทกิจกรรมมีดังนี้

จำนวนการชื่นชมโดยเฉลี่ยต่อประเภทกิจกรรม — รูปภาพโดยผู้เขียน

แม้ว่าจะไม่ใช่กิจกรรมที่ได้รับความนิยมมากที่สุด แต่การวิ่งเป็นกีฬาที่ฉันมีจุดข้อมูลมากที่สุด และนี่คือจุดที่ฉันพยายามจะเจาะลึกมากขึ้น เราสามารถพยายามทำความเข้าใจว่าทำไมกิจกรรมจึงได้รับความชื่นชมมากกว่ากิจกรรมอื่น ลองดูความสัมพันธ์ที่เป็นไปได้ระหว่างระยะทางของการวิ่งกับจำนวนความรุ่งโรจน์ที่กิจกรรมจะได้รับ

ปรากฎว่าดูเหมือนว่าจะมีความสัมพันธ์เชิงบวก กล่าวคือ ยิ่งวิ่งนานเท่าใด จำนวนความรุ่งโรจน์ยิ่งสูงขึ้น ดังที่แสดงในกราฟด้านล่าง
จริงอยู่ที่ นัยสำคัญทางสถิติของผลลัพธ์นี้เป็นที่ถกเถียงกันเมื่อพิจารณาจากจุดข้อมูลจำนวนเล็กน้อยที่เราพิจารณา ข้อสรุปที่แน่นอนเพียงอย่างเดียวที่นี่คือฉันต้องดำเนินการมากกว่านี้

เราสามารถดำเนินการต่อไปในการวิเคราะห์ โดยดูที่อิทธิพลของตัวแปรอื่นๆ แต่ฉันจะทิ้งมันไว้สำหรับบทความอื่น

ความสัมพันธ์เชิงบวกระหว่างระยะทางของการวิ่งกับจำนวนความรุ่งโรจน์ที่ได้รับ — กราฟโดยผู้เขียน

สุดท้าย เราสามารถพลอต "กราฟความรุ่งโรจน์" ซึ่งเราจะเห็นว่าใครคือผู้สนับสนุนหลักของเราและให้พวกเขาตะโกนออกไป
แน่นอนว่าบางคนติด Strava มากกว่าคนอื่นๆ และจะให้ความชื่นชมยินดีเมื่อพวกเขาเลื่อนลงมาที่ฟีดกิจกรรมของพวกเขา ในขณะที่คนอื่นๆ จะเปิดแอปเป็นครั้งคราวและให้ความชื่นชมเฉพาะกับกิจกรรมล่าสุดที่พวกเขาเห็นเท่านั้น
กราฟนี้ไม่ได้เกี่ยวกับการตัดสินผู้คนว่าให้การชื่นชมหรือไม่ มันเป็นเพียงการแสดงภาพประกอบข้อมูลเชิงลึกใหม่ๆ ที่คุณจะไม่เห็นที่อื่น แม้แต่ในเวอร์ชันพรีเมียมของแอป

“กราฟรุ่งโรจน์” แสดงผู้สนับสนุนสูงสุด — กราฟโดยผู้เขียน

ไม่ต้องสงสัยเลยว่ามีวิธีอื่นอีกมากมายที่เราสามารถทำได้กับข้อมูลทั้งหมดที่เราได้รับจาก 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 via https://towardsdatascience.com/feed

<!–

->

ประทับเวลา:

เพิ่มเติมจาก ที่ปรึกษาบล็อคเชน