Верен ли этот расчет байесовского среднего?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Верен ли этот расчет байесовского среднего?

Сообщение Гость »

Мы используем байесовское среднее на нашем веб-сайте уже пару лет, и, похоже, оно работает отлично, но при использовании той же формулы с другими (хорошими) данными на другом веб-сайте результат был немного тревожным.
Мы используем этот PHP-код: Обычно эти данные заполняются динамически, но чтобы вы имели представление, мы введем данные вручную.
Итак, эти данные:

Код: Выделить всё

$avg_num_reviews = 6264.3636363636;
$avg_rating = 4.527272727272727;
правильно.
Если мы затем вычислим байесовское среднее, то, на мой взгляд, что-то пойдет не так. Нам бы очень помогло, если бы кто-нибудь мог сказать что-нибудь значимое по этому поводу.

Код: Выделить всё

$this_num_reviews = total number over reviews for this company;
$this_average_rating = the average rating of this company;
Теперь мы переходим к самому странному:
Компания А

Код: Выделить всё

$avg_num_reviews = 6264.3636363636;
$avg_rating = 4.527272727272727;
$this_num_review = 4;
$this_average_rating = 4;
$bayesian_average = (($avg_num_reviews * $avg_rating) + ($this_num_reviews * $this_average_rating)) / ($avg_num_reviews + $this_num_reviews);

$bayesian_average = 4.5269362613254;
Компания Б

Код: Выделить всё

$avg_num_reviews = 6264.3636363636;
$avg_rating = 4.527272727272727;
$this_num_review = 111;
$this_average_rating = 4.2;
$bayesian_average = (($avg_num_reviews * $avg_rating) + ($this_num_reviews * $this_average_rating)) / ($avg_num_reviews + $this_num_reviews);

$bayesian_average = 4.5215746565744;
Компания С

Код: Выделить всё

$avg_num_reviews = 6264.3636363636;
$avg_rating = 4.527272727272727;
$this_num_review = 15468;
$this_average_rating = 4.4;
$bayesian_average = (($avg_num_reviews * $avg_rating) + ($this_num_reviews * $this_average_rating)) / ($avg_num_reviews + $this_num_reviews);

$bayesian_average = 4.4366864211353;
Если мы отсортируем это по байесовскому среднему, это будет так:
  • Компания А
    Компания Б
  • Компания С
Но как может случиться, что компания (Компания C) с 15 468 отзывами и средним показателем 4,4 имеет более низкий байесовский средний показатель, чем компания (Компания A) с 4 отзывами и средним показателем 4?
Байесовский средний показатель должен гарантировать, что подобные вещи предотвращаются.
Логическая последовательность должна быть следующей:
  • Компания C
  • Компания Б
  • Компания А
Может кто-нибудь объяснить мне, почему это происходит и может ли быть что-то не так в формуле?
Я что-то упускаю или мне следует использовать другую формулу, чтобы сделать это лучше?
Если кто-нибудь могу сказать что-то осмысленное по этому поводу, я был бы очень благодарен этому человеку, потому что я сейчас немного сбился с пути.

Подробнее здесь: https://stackoverflow.com/questions/781 ... tion-right
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»