Алгоритм расчета самых популярных курсов
Я пытаюсь получить статистику по курсам, перечисленным на учебном портале. один из которых, чтобы получить 4 самых популярных курса на основе следующих трех факторов:
- Количество подписчиков на курс
- Средний рейтинг
- Количество отзывов
Я долго обдумывал решение, но не смог найти лучший подход для достижения вышеизложенного.
Кто-нибудь может подсказать, как я могу использовать эти факторы для получения наиболее точных данных о популярных курсах?
Любая помощь высоко ценится.
Спасибо
3 ответа
Прежде чем дать вам некоторую субъективную формулу по этому поводу, я хотел бы указать вам на пару ссылок о байесовской статистике и о том, как IMDb оценивает фильмы
То, как вы выбираете веса для своего единого набора параметров, в вашем случае использования представляется весьма субъективным. У вас не так уж много параметров, чтобы играть ни с тем, ни с другим. Например, у вас есть количество отзывов... но значит ли это, что все они хорошие отзывы?
Вот как я бы это сделал:
- Положите подписчиков, рейтинги и отзывы в 3 отдельных списка
- Используйте функцию как
max()
чтобы найти наибольшее значение в списке, затем удалите это значение из списка, сделайте это 4 раза, каждый раз добавляя наибольшее значение в новый список (если хотите) - Сделайте это для каждого списка
Кроме того, какой язык вы используете? Я знаю, что это будет работать для меня, но это может немного отличаться в зависимости от языка
Вы можете попробовать эту формулу ->
popularity = 50*((NumSub/maxNumSub) + (RateAvg/RateMax)*(NumReview/NumSub))
Вот,
NumSub = Number of Subscribers in the Course.
maxNumSub = Maximum Number of Subscribers in all the Courses.
RateAvg = Average Rating of the Course.
RateMax = The Highest rating a course can get.
NumReview = Number of reviews of the course.
Таким образом, вы получите значение для popularity
снаружи 100
,
e.g:
Давайте предположим, для курса,
NumSub = 80
maxNumSub = 100
RateAvg = 4.5
RateMax = 5
NumReview = 24
Итак, по формуле
popularity = 50 * ((80/100) + (4.5/5)*(24/80))
= 50 * (0.8 + 0.9*0.3)
= 53.5
Таким образом, значение популярности для курса 53.5
,