Алгоритм расчета общего балла и каждого критерия независимо
Представьте себе что-то вроде отзывов о бронировании, где у нас есть для каждого отзыва несколько баллов по критериям и общий рейтинг.
Для простоты я буду использовать буквы, но представьте себе, как A, как комфорт, B локализация и так далее. Доступен рейтинг (1-4)
A B C D
hotel_review1 | 1 2 3 4
hotel_review2 | 2 2 3 3
A B C D
user_weighing | 2 3 2 3
Для глобального рейтинга у меня есть это (просто среднее взвешивание):
Для среднего значения каждого критерия я делаю среднее арифметическое, а после этого умножаю результат на user_weighing:
A - ((1+2)/2)*2/4 = 0.75
B - ((2+2)/2)*3/4 = 1.5
C - ((3+3)/2)*2/4 = 1.5
D - ((4+3)/2)*3/4 = 2.625
-----
6.375 / 4 = 1.60
Итак, моя проблема в том, что мне нужен общий балл, в моем случае 2,55. Однако, если я посмотрю на каждый счет независимо, есть большая разница между 2,55 и 1,60. Есть лучший способ сделать то, что я ищу?
1 ответ
Как упоминала Джухана в комментариях, вам нужно поделить на сумму весов, которая составляет 10 (2 + 3 + 2 + 3), а не на количество весов, которое составляет 4:
A: ((1+2)/2)*2/10 = 0.3
B: ((2+2)/2)*3/10 = 0.6
C: ((3+3)/2)*2/10 = 0.6
D: ((4+3)/2)*3/10 = 1.05
-----
2.55
Однако это более простой расчет, требующий меньшего количества операций, если вы оставите деления на количество проверок (2) и сумму весов (10) до конца:
A: (1+2)*2 = 6.0
B: (2+2)*3 = 12.0
C: (3+3)*2 = 12.0
D: (4+3)*3 = 21.0
-----
51.0 / (2*10) = 2.55