
امروز داشتم روی سیستم امتیازدهی پرتغالهاب کار میکردم که برام یه سوال پیش اومد!
چطور میتونم جلوی این رو بگیرم که چند تا رای کم ولی خیلی خوب، یه سرویس رو بیخودی نبرند بالای جدول؟
فرض کن دو تا سرویس داریم:
- سرویس A → ۵ نفر بهش امتیاز دادن و همه ۵ ستاره دادن.
- سرویس B → ۱۰۰۰ نفر بهش امتیاز دادن و میانگینش ۴.۵ ستاره است.
اگر فقط به میانگین ساده نگاه کنیم، سرویس A کامل ۵ ستارهست و B کمتره.
اما واقعیت اینه که سرویس B دادههای خیلی بیشتری داره و احتمال خطا یا سوگیریش خیلی کمتره.
مشکل میانگین خام
میانگین ساده تعداد رای رو در نظر نمیگیره.
به همین خاطر سرویسهای کممخاطب ممکنه با چند رای خیلی خوب، بیخودی توی صدر قرار بگیرن.
راهحل: امتیاز تعدیلشده (Bayesian Average)
ایده اینه که با تعداد رای کم، بیشتر به میانگین کل سرویسها تکیه کنیم،
و با تعداد رای زیاد، بیشتر به میانگین خود سرویس اعتماد کنیم.
فرمول ساده:
$$
\text{Final Score} = \frac{n}{n + m} \times R \;+\; \frac{m}{n + m} \times C
$$
- n → تعداد رایها
- R → میانگین امتیاز همین سرویس
- C → میانگین امتیاز همه سرویسها
- m → عدد ثابت که مشخص میکند از چه تعداد رای به بعد میتونیم به میانگین سرویس اعتماد کرد (مثلن ۵۰)
مثال واقعی:
با میانگین کل = ۴.۲ و m = ۵۰:
- سرویس A (۵ رای، میانگین ۵): امتیاز نهایی ≈ ۴.۲۷
- سرویس B (۱۰۰۰ رای، میانگین ۴.۵): امتیاز نهایی ≈ ۴.۴۸
نتیجه؟ در رتبهبندی، B بالاتر میاد چون اعتماد به دادههاش بیشتره.
چرا این روش خوبه؟
- از بادکردن مصنوعی امتیاز جلوگیری میکنه.
- سرویسهای جدید هم فرصت دیده شدن دارن، ولی نه با چند رای محدود.
- با افزایش رایها، امتیاز واقعی خودش رو نشون میده.
Leave a Reply