← Back to list

Kullanıcı ve Zaman Bazlı Ağırlıklı Ortalama

Herkese merhaba,

Boranarikan · 2021-12-31 12:33 · 52 claps · 3.3 min read
#time-based #data-sciene #vbo #data #ratings
Open on Medium ↗

Kullanıcı ve Zaman Bazlı Ağırlıklı Ortalama

Çeşitli kurslar ve puanlamaları

Çeşitli kurslar ve puanlamaları

Herkese merhaba,

Medium’daki ilk yazımda bilgim dahilinde sizlere Veri Bilimi Okulu’ndaki bir projemizden bahsedeceğim. Müşterilerin veya kullanıcıların herhangi bir hizmet sonrasında değerlendirme yapmalarına hepimiz aşinayızdır, fakat bu puanlamalar nasıl mı yapılıyor gelin birlikte “course_reviews.csv” adlı veri setimizi inceleyip yorumlayalım sonrasında zaman bazlı ağırlıklı ortalamaya ve kullanıcı bazlı ağırlık ortalamaya bir göz atalım.

import işlemleri ve veri setini okuma

import işlemleri ve veri setini okuma

Burada veri setimizi okutmadan önce gerekli kütüphaneleri import işlerimizi yaptıktan sonra veriyi güzel bir şekilde bakmak için kodlarımızı yazıyoruz, şimdi ise df.head() kodunun çıktısına bir bakalım.

df.head() çıktısı

df.head() çıktısı

df.head() komutunu çalıştırdıktan sonra verimize ilk bakışımızı yapıyoruz ve sütunlardaki değişkenleri görüyoruz burada yapılan değerlendirmeleri , kursu bitirme tarih ve zamanları , kayıt oldukları günü, ilerlemeleri , sordukları soru sayılarını ve cevaplanan soru sayılarını görmekteyiz.

değerlendirilmelerin sayısı

değerlendirilmelerin sayısı

df[“Rating”].value_counts() diyerek kaç tane kullanıcının hangi puanı verdiğini görmekteyiz. Örneğin 3267 kişi kursa 5 puan verirken 2 kullanıcımız ise 1.5 puan vermiştir.

Sorulan soru dağılımı

Sorulan soru dağılımı

df’in içine sorulan soru değişkenini girip value_counts’ una baktığımız zaman ise kullanıcıların kaçtane soru sorduğunu görmüş oluruz, 3867 kullanıcı hiç soru sormamışken, 22 soru soran 1 kişi ve 15 soru soran 2 kişi olduğunu görmekteyiz.

Sorulan soru dağılımında verilen puanların ortalaması

Sorulan soru dağılımında verilen puanların ortalaması

Groupby’ın içine sorulan soru değişkenini girdikten sonra aggregation’ın içine sorulan soruların sayısını ve puanlamaların ortalamasını yazdığımızda yukarıdaki görseli elde ederiz. Örneğin hiç soru sormayan 3867 kişinin kursa vermiş yapmış olduğu değerlendirmelerin ortalaması 4.76519 iken 22 soru soran 1 kullanıcımız ise 5 puan vermiştir.

kursa verilen puanlamaların ortalaması

kursa verilen puanlamaların ortalaması

Şimdi ise Puan Zamanlarına Göre Ağırlıklı Ortalamayı ele alalım, burada kullanıcıların kursa vermiş olduğu güncel puanların değerini biraz arttırırken üstünden zaman geçmiş olan değerlendirmeleri ise biraz azaltacağız.

zaman bazlı ağırlıklı ortalama kodları

zaman bazlı ağırlıklı ortalama kodları

Burada ise verimizi timestamp değişkenine indirgiyoruz ve bugünün zamanını current_date diyerek belirliyoruz, sonrasında bugünün tarihinden kullanıcıların değerlendirme yaptıkları günü çıkartarak, kaç gün önce değerlendirme yaptıklarına ulaşıyoruz. 30 gün önce değerlendirme yapan kullanıcıların ortalama değerlendirmeleri 28, 30–90 gün arasını 26, 90–180 gün arasını 24, 180+ günlük puanlamaları ise 22 ile çarparak, güncel yorumların önemini biraz daha arttırıyoruz.

kodumuzun çıktısı

kodumuzun çıktısı

Çıktımız bize Puan “Zamanlarına Göre Ağırlıklı Ortalamayı” göstermektedir. Sizde gün sayılarını istediğiniz zamana göre ayarlayabilir ve katsayılarda değişiklikler yapabilirsiniz.

Kullanıcı bazlı ağırlık ortalama

Kullanıcı bazlı ağırlık ortalama

Benzer işlemi bu sefer fonksiyon yazarak yapalım, dataframe’i progress değişkenine göre indirgedikten sonra kullanıcıların kurslardaki ilerlemelerine göre vermiş olduğu puanların ortalamalarına göre katsayılar giriyoruz. %10 ve aşağıda olan ilerlemelerin oranını 22, 10–45 aralığını 24, 45–75 aralığını 26 ve 75 ten fazla ilerlemiş kullanıcıların vermiş olduğu puanların ortalama değerlerini 28 diyerek arttırmış oluyoruz.

kullanıcı bazlı ağırlıklı ortalama puanı

kullanıcı bazlı ağırlıklı ortalama puanı

tanımladığımız fonksiyonu çağırarak kullanıcıların kurstaki ilerlemelerine değiştirdiğimiz yeni ortalamayı görmekteyiz.

Kursun Ağırlıklı Ortalaması

Kursun Ağırlıklı Ortalaması

course_weighted_rating adında yeni bir fonksiyon oluşturarak zaman bazlı ortalama ile kullanıcı bazlı ortalamayı eşit oranda birleştirerek kursun puanını görmüş olacağız.

Kursun ağırlıklı ortalaması

Kursun ağırlıklı ortalaması

Evet bu çıktı ise bize yarı kullanıcı bazlı yarı zaman bazlı ortalamayı göstermektedir. Yukarıdaki fonksiyonun içindeki time_w ve user_w değerlerini istediğiniz gibi değiştirebilir ve kendi ortalamanızı yakalayabilirsiniz.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Okuduğunuz için teşekkür ederim, umarım beğenmişsinizdir :)

KAYNAKÇA

[embed]Veri Bilimci Yetiştirme Programı Veri Bilimci Yetiştirme Programı Bu sayfada Veri Bilimci Yetiştirme Programı süresince ihtiyacınız olabilecek…courses.miuul.com

I ❤ VBO


메타데이터
post_id
a7c34dfd4396
slug
kullanıcı-ve-zaman-bazlı-ağırlıklı-ortalama-a7c34dfd4396
url
https://medium.com/@boranarikann/kullan%C4%B1c%C4%B1-ve-zaman-bazl%C4%B1-a%C4%9F%C4%B1rl%C4%B1kl%C4%B1-ortalama-a7c34dfd4396
canonical_url
https://medium.com/@boranarikann/kullan%C4%B1c%C4%B1-ve-zaman-bazl%C4%B1-a%C4%9F%C4%B1rl%C4%B1kl%C4%B1-ortalama-a7c34dfd4396
author_url
https://medium.com/@boranarikann
status
ok
fetched_at
2026-07-27 16:27:02