Strava'da 1 Numaralı Destekçiniz kim?

Strava API'sini keşfedin ve Python ile öğrenin

Geçtiğimiz birkaç yılda Strava, bisiklet ve koşu aktivitelerimi takip etmek için başvuracağım uygulama haline geldi. Uygulamanın pek çok harika özelliğinden biri de arkadaşlarınızın sizi etkinlikleriniz için tebrik edebilmesidir. Ve bazen bu tebrikler, devam etmeniz için gereken moral desteğidir.

2022 yılında Alplerde tırmanışa hazırlanırken ve Strava'yı eskisinden daha düzenli kullanırken, bazı insanların tebrik konusunda diğerlerinden daha cömert olduklarını fark ettim. Ama kim olduğuna dair kesin bir fikrim yoktu ve bu beni düşündürdü. İstatistiklerime uygulamanın sunduğundan daha derinlemesine bakmanın bir yolu var mı? Evet, var.

Bu makalede, projeyi yapılandırmak için çok yaygın olan “Dönüştürme Yükünü Çıkart” yaklaşımını kullandım. Faaliyet verilerimi Strava'dan (Extract) almayı, yeni öngörüleri nasıl hesapladığımı (Dönüştürme) ve destek için kime teşekkür edeceğimi (Yükleme) bilmek için "Tebrik Grafiği" ve diğer görselleştirmeleri nasıl oluşturduğumu gösteriyorum.

Zamanla bu yaklaşımın benzer veri projelerini organize etmenin harika bir yolu olduğunu keşfettim. Başlamadan önce son bir not: Burada gösterilen her şey çoğaltılabilir ve kod Github'da mevcuttur (makalenin sonundaki bağlantı) böylece kendinizinkini oluşturabilirsiniz.

Haydi kodlamaya başlayalım!

Yapmamız gereken ilk şey kimlik doğrulaması yapmak, yani erişim tokenını Strava'dan almak. Aşağıdaki işlev, önceki bölümde aldığımız ayrıntıları (istemci kimliği, istemci sırrı, yenileme belirteci ve yetkilendirme kodu) uç noktaya kadar içeren bir POST isteğiyle tam olarak bunu yapacaktır. https://www.strava.com/oauth/token.

Bu bölümde aşağıdakileri yapmak için iki fonksiyon oluşturuyoruz:

  1. Profildeki tüm etkinliklerin listesini alın.
    Daha önce aldığımız erişim tokenını kullanarak ilgilendiğimiz aktivitelerin kapsamını tanımlayan iki tarih belirterek, bu iki tarih arasındaki tüm aktivitelerin listesini ve ana özelliklerini alıyoruz.
  2. Belirli bir etkinliği tebrik edenlerin listesini alın.
    Ne yazık ki etkinliklerin tebrik edenlerinin listesi önceki talebin sonucunda yer almıyor. Activity_id ile tanımlanan tek bir aktivite için tebrik edenlerin listesini döndüren get_kudos fonksiyonunu oluşturmamız gerekiyor.

Artık istediğimiz verileri elde ettiğimize göre, fikir yalnızca ihtiyacımız olanı tutmak ve bunu bir Pandas Veri Çerçevesine koymaktır.

Aşağıdaki dönüştürme işlevi, etkinlikler listesinden aşağıdaki verileri çıkarır:

  1. Bir etkinlik için benzersiz tanımlayıcı olarak kullanılan etkinlik kimliği.
  2. Her aktivitenin tebrik sayısı.
  3. Bir döngüde get_kudos() işlevinden yararlanılarak bir etkinliğe ilişkin tüm tebrik edenlerin listesi.
  4. Her aktivitenin mesafesi.
  5. Her aktivitenin aldığı süre.
  6. Faaliyet türü.

⚠️Strava API'nin kullanımında sınırlama bulunmaktadır. Her 100 dakikada bir 15 çağrı ve günde 1000 çağrı ile sınırlıdır.

Bu projede, etkinliklerin listesini almak için API'yi bir kez, ardından her bir etkinlikteki tebrik edenlerin listesini almak için etkinlik başına bir kez çağırıyoruz.

Bu, söz konusu pencerede 100'den fazla etkinliğiniz varsa, kodun bu haliyle çalışmayacağı ve API kullanım sınırına uymak için onu biraz değiştirmeniz gerekeceği anlamına gelir.

Yapılacak tek şey, yeni oluşturduğumuz işlevlerden yararlanmak ve ilginç şeyler tasarlamaya başlamak!

Benim durumumda, 2022'den bu tarihe kadar olan faaliyetlerimi düşünüyorum - 24/10/2022.

Veri yapımızdan, belirli bir dönemde birkaç üst düzey KPI elde etmek son derece kolaydır:

Yüksek düzey KPI'lar — Yazara göre resim

Önceki bölümde her aktivitenin spor türünü aldığımız için, belirli aktivite türlerinin diğerlerinden daha fazla övgü almaya eğilimli olup olmadığını da kolayca araştırabiliriz. Faaliyet türü başına ortalama tebrik sayısı şöyledir:

Faaliyet türü başına ortalama teşekkür sayısı — Yazara göre resim

En popüler aktivite türü olmasa da koşmak en fazla veri noktasına sahip olduğum spordu ve bu yüzden biraz daha araştırmaya çalıştım. Bir etkinliğin neden diğerinden daha fazla övgü aldığını anlamaya çalışabiliriz. Koşunun mesafesi ile etkinliğin alacağı takdir sayısı arasındaki olası ilişkiye bakalım.

Aşağıdaki grafikte de görüldüğü gibi pozitif bir korelasyon olduğu ortaya çıktı; yani koşu ne kadar uzun olursa, tebrik sayısı da o kadar yüksek olur.
Kabul edelim ki, dikkate aldığımız az sayıda veri noktası göz önüne alındığında, bu sonucun istatistiksel önemi tartışmalıdır. Buradan kesin olan tek sonuç daha fazla koşmam gerektiğidir.

Diğer değişkenlerin etkisine bakarak analizde daha ileri gidebiliriz, ancak bunu başka bir makaleye bırakacağım.

Bir koşunun mesafesi ile aldığı takdir sayısı arasındaki pozitif korelasyon — Yazara göre grafik

Son olarak, en büyük destekçilerimizin kimler olduğunu görebileceğimiz ve onlara seslenebileceğimiz “Tebrik Grafiği”ni çizebiliriz.
Tabii ki, bazı insanlar Strava'ya diğerlerinden daha fazla bağımlıdır ve etkinlik akışlarında aşağı doğru ilerledikçe tebriklerini sunarken, diğerleri uygulamayı yalnızca arada bir açıp yalnızca gördükleri en son etkinlikleri tebrik ederler.
Bu grafik hiçbir şekilde insanları tebrik edip etmedikleri konusunda yargılamakla ilgili değildir; yalnızca uygulamanın premium sürümünde bile başka hiçbir yerde göremeyeceğiniz yeni bilgileri göstermekle ilgilidir.

En iyi destekçileri gösteren "Tebrik Grafiği" - Yazara göre grafik

Hiç şüphe yok ki Strava API'sinden alabileceğimiz tüm verilerle yapabileceğimiz çok daha fazlası var. Bu sadece olağandışı bir soruyu yanıtlamak için bir ilk fırsattı ve işleri yoluna koymak için iyi bir egzersizdi.

Strava faaliyetlerinizi analiz etmek ve en büyük destekçilerinizin kimler olduğunu öğrenmek istiyorsanız kodun tamamını burada bulabilirsiniz:
https://github.com/Guigs11/strava_kudos

Makalenin sonuna kadar okuduğunuz için teşekkür ederiz!
Aşağıya bir mesaj bırakmaktan veya bana ulaşmaktan çekinmeyin.
LinkedIn herhangi bir sorunuz / yorumunuz varsa!
Gelmek için daha fazla!

Strava'daki 1 Numaralı Destekçiniz kim? Kaynak https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 adresinden https://towardsdatascience.com/feed aracılığıyla yeniden yayınlandı.

<!–

->

Zaman Damgası:

Den fazla Blockchain Danışmanları