Web sitemizde size en iyi deneyimi sunmak için çerezleri kullanıyoruz. Hangi çerezleri kullandığımız hakkında daha fazla şey öğrenmek için Gizlilik
Onayla
Türker UZUNTürker UZUN
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Doğal Dil İşleme (NLP)
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Reading: Sorting ve Rating Algoritmaları: Örnekli İnceleme
Paylaş
Aa
Türker UZUNTürker UZUN
Aa
  • VERİ ANALİZİ
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Ara...
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Doğal Dil İşleme (NLP)
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Follow US
Türker UZUN > Blog > Veri Analizi > Ölçümleme Problemleri > Sorting ve Rating Algoritmaları > Sorting ve Rating Algoritmaları: Örnekli İnceleme
Ölçümleme ProblemleriSorting ve Rating AlgoritmalarıVeri Analizi

Sorting ve Rating Algoritmaları: Örnekli İnceleme

7 Min Read
Paylaş
7 Min Read
Python Blog, Python Soruları, Python Dersleri, Python Veri Analizi, Python İlginç Sorular

Giriş

E-ticaret platformları ve inceleme siteleri, kullanıcıların içeriği keşfetmelerini ve ürün/hizmet kalitesini değerlendirmelerini sağlamak için çeşitli sıralama ve rating algoritmalarını kullanırlar. Bu yazıda, farklı algoritmaların örnek uygulamalarını inceleyeceğiz ve her bir algoritmanın işleyişini detaylı bir şekilde açıklayacağız.

Contents
Giriş1. Wilson Lower Bound Algoritması2. Bayesian Average3. Average Rating4. Net Promoter Score (NPS)5. MAD (Mean Absolute Deviation)6. Hybrid Sıralama7. Potansiyel Bazlı Sıralama

1. Wilson Lower Bound Algoritması

Wilson Lower Bound, kullanıcı incelemelerini sıralamak için pozitif ve negatif oylar arasındaki farkı değerlendiren bir güven aralığı hesaplaması yapar. Bu algoritma, kullanıcıların verdiği oyların sayısı az olduğunda bile güvenilir bir sıralama sağlar.

def wilson_lower_bound(up, down, confidence=0.95):
    n = up + down
    if n == 0:
        return 0

    z = 1.96  # Z-score for 95% confidence
    phat = up / n
    return (phat + z * z / (2 * n) - z * math.sqrt((phat * (1 - phat) + z * z / (4 * n)) / n)) / (1 + z * z / n)

2. Bayesian Average

Bayesian Average, kullanıcı incelemelerini ağırlıklandırarak bir ortalama puan hesaplamak için kullanılır. Bu algoritma, özellikle az sayıda oy alan ürünler veya içerikler için etkili bir sıralama sağlar.

def bayesian_average(up, down, confidence=0.95):
    n = up + down
    if n == 0:
        return 0

    z = 1.96  # Z-score for 95% confidence
    phat = up / n
    return (phat + z * z / (2 * n) - z * math.sqrt((phat * (1 - phat) + z * z / (4 * n)) / n)) / (1 + z * z / n)

3. Average Rating

Average Rating, kullanıcıların verdiği puanların doğrudan ortalamasını alarak bir sıralama yapar. Bu yöntem basit ve hızlıdır, ancak manipülasyona karşı daha duyarlı olabilir.

def average_rating(up, down):
    total_votes = up + down
    return up / total_votes if total_votes > 0 else 0

4. Net Promoter Score (NPS)

Net Promoter Score (NPS), müşteri memnuniyetini değerlendirmek ve bir şirketin müşteri sadakatini anlamak için kullanılan bir sıralama ölçüsüdür. Genellikle, bir ürün veya hizmeti “promotör” (tavsiye eden), “pasif” (duyarsız) ve “kritik” (olumsuz) olarak sınıflandıran basit bir soru sorularak ölçülür:

Soru: “Bu ürünü/hizmeti bir arkadaşınıza tavsiye eder miydiniz?”

  1. Promotörler (9-10): Yüksek puan veren ve ürün veya hizmeti memnuniyetle tavsiye eden kullanıcılar.
  2. Pasif Kullanıcılar (7-8): Ortalama bir memnuniyet seviyesine sahip, ancak çok etkilenmemiş kullanıcılar.
  3. Kritik Kullanıcılar (0-6): Düşük puan veren ve üründen veya hizmetten memnun olmayan kullanıcılar.

Örnek Uygulama:

def calculate_nps(promoters, passives, critics):
    total_responses = promoters + passives + critics
    
    if total_responses == 0:
        return 0
    
    nps = (promoters / total_responses * 100) - (critics / total_responses * 100)
    return nps

5. MAD (Mean Absolute Deviation)

Mean Absolute Deviation (MAD), bir değişkenin ortalamasına olan mesafeyi ölçen bir istatistiksel metriktir. Sıralama ve rating algoritmalarında kullanılarak, puanların ortalamadan ne kadar uzak olduğunu değerlendirerek anormallikleri belirlemek için kullanılabilir.

Hesaplama: MAD, her puanın ortalamadan mutlak değerli farklarını alır, bu farkları toplar ve ardından toplam farkı puan sayısına böler.

def mean_absolute_deviation(scores):
    n = len(scores)
    if n == 0:
        return 0
    
    mean = sum(scores) / n
    mad = sum(abs(score - mean) for score in scores) / n
    return mad

Daha yüksek bir MAD değeri, puanların ortalamadan daha uzak olduğunu ve daha fazla anormallik içerdiğini gösterebilir. MAD, özellikle bir veri setinin puanların dağılımını anlamak ve manipülasyonu tespit etmek için kullanışlı bir metriktir.

6. Hybrid Sıralama

Açıklama: Hybrid sıralama, birden fazla sıralama algoritmasını birleştirerek daha güçlü ve esnek bir sıralama yöntemi oluşturmayı amaçlar. Örneğin, Wilson Lower Bound’ın güvenilirliğini ve Bayesian Average’ın ağırlıklandırma yeteneğini bir araya getirebiliriz. Bu, farklı özellikleri birleştirerek daha kapsamlı bir sıralama sonucu elde etmemize yardımcı olabilir.

Örnek Uygulama:

import math

def wilson_lower_bound(up, down, confidence=0.95):
    n = up + down
    if n == 0:
        return 0

    z = 1.96  # Z-score for 95% confidence
    phat = up / n
    return (phat + z * z / (2 * n) - z * math.sqrt((phat * (1 - phat) + z * z / (4 * n)) / n)) / (1 + z * z / n)

def bayesian_average(up, down, confidence=0.95):
    n = up + down
    if n == 0:
        return 0

    z = 1.96  # Z-score for 95% confidence
    phat = up / n
    return (phat + z * z / (2 * n) - z * math.sqrt((phat * (1 - phat) + z * z / (4 * n)) / n)) / (1 + z * z / n)

def hybrid_ranking(wilson_score, bayesian_average, weight_factor=0.7):
    return (wilson_score * weight_factor) + (bayesian_average * (1 - weight_factor))

# Örnek kullanım
up_votes = 150
down_votes = 10

wilson_score = wilson_lower_bound(up_votes, down_votes)
bayesian_average_score = bayesian_average(up_votes, down_votes)

hybrid_score = hybrid_ranking(wilson_score, bayesian_average_score)

print(f"Wilson Lower Bound Score: {wilson_score}")
print(f"Bayesian Average Score: {bayesian_average_score}")
print(f"Hybrid Score: {hybrid_score}")

Bu örnekte, wilson_lower_bound ve bayesian_average fonksiyonları ile elde edilen skorları kullanarak hybrid_ranking fonksiyonuyla birleştiriyoruz. weight_factor parametresi, her iki skorun ağırlıklarını ayarlamak için kullanılır. Bu şekilde, her iki algoritmanın avantajlarını birleştirerek daha güçlü bir sıralama elde edebilirsiniz.

7. Potansiyel Bazlı Sıralama

Açıklama: Potansiyel bazlı sıralama, kullanıcıların geçmişteki davranışlarına dayanarak gelecekteki beklentilerini değerlendirerek sıralama yapmayı amaçlar. Kullanıcıların geçmişteki tercihleri ve etkileşimleri üzerinden gelecekteki potansiyel eğilimleri belirlemeye çalışır.

Algoritma:

  1. Kullanıcının geçmişteki puanları ve etkileşimleri üzerinden bir potansiyel beklenti hesaplanır.
  2. Gelecekteki potansiyel beklenti, mevcut puanlara eklenerek sıralama yapılır.

Örnek Uygulama:

def calculate_potential_expectation(user_history):
    # Kullanıcının geçmişteki puanları ve etkileşimleri üzerinden potansiyel beklentiyi hesapla
    # Bu hesaplama, özelleştirilebilir ve kullanıcının platform üzerindeki etkileşimine bağlı olarak değişebilir
    potential_expectation = custom_potential_calculation(user_history)
    return potential_expectation

def potential_based_ranking(current_rating, user_history):
    # Kullanıcının geçmişteki davranışlarına göre gelecekteki beklentileri hesapla
    potential_expectation = calculate_potential_expectation(user_history)
    
    # Gelecekteki beklentileri dikkate alarak sıralama yap
    return current_rating + potential_expectation

Bu örnekte, calculate_potential_expectation fonksiyonu, kullanıcının geçmiş etkileşimlerine dayanarak potansiyel beklentiyi hesaplar. potential_based_ranking fonksiyonu, mevcut puanlara bu potansiyel beklentiyi ekleyerek sıralama yapar. Bu şekilde, kullanıcının geçmiş tercihleri ve etkileşimleri üzerinden gelecekteki potansiyel eğilimleri dikkate alarak daha kişiselleştirilmiş bir sıralama elde edebilirsiniz.

ETİKETLER: Average Rating, Bayesian Average, Hybrid Sıralama, MAD (Mean Absolute Deviation), Rating Algoritmaları, Sorting Algoritmaları, Wilson Lower Bound
Editor Şubat 11, 2024
Paylaş
Whatsapp Whatsapp LinkedIn Email Copy Link

Son Yazılar

  • Agile’i Kurum Kültürüne Oturtmak – Eğitim, Koçluk ve Dönüşüm Stratejisi
  • Agile Yanılgılar ve Kurumsal Fallar: Gerçekten Her Yerde Gerekli mi?
  • Agile Metrikleri: Ne Ölçülür, Ne Ölçülmemeli?
  • Scrum’da Disiplin: Sprint Planlaması, Kapsam Yönetimi ve Günlük Standup’ların Etkin Kullanımı
  • “Scrum, Kanban, Scrumban — Projende Hangi Çevik Model Doğru Tercih?”

Takip Et

Sponsor Linkler

İlginizi Çekebilir

BLOGBüyük Dil Modelleri (LLM)Teknoloji

Google, Gemma 3’ü Tanıttı: Yenilikler ve Gemma3:12B Değerlendirmesi

Büyük Dil Modelleri (LLM)Veri Analizi

LLM: Dikkat Mekanizması Hızlandırma Kütüphaneleri Karşılaştırmalı Analiz: Xformers, Flash Attention, DeepSpeed, Apex ve Megatron

Büyük Dil Modelleri (LLM)Veri Analizi

Büyük Dil Modellerinde Yanıt Süresi Optimizasyonu: Ollama ve Langchain

Doğal Dil İşleme (NLP)Python Veri AnaliziVeri Analizi

Türkiye’deki Mobil Bankacılık Deneyiminde Neler Gizli: “Part1 – IOS”

Türker UZUNTürker UZUN
Takip Et

Python Veri Analizi Uygulamaları, Makine Öğrenimi, Python Sentiment Analizi, Python NLP Uygulamalar, Web Tasarımı

Removed from reading list

Undo