Алгоритм расчета самых популярных курсов

Я пытаюсь получить статистику по курсам, перечисленным на учебном портале. один из которых, чтобы получить 4 самых популярных курса на основе следующих трех факторов:

  • Количество подписчиков на курс
  • Средний рейтинг
  • Количество отзывов

Я долго обдумывал решение, но не смог найти лучший подход для достижения вышеизложенного.

Кто-нибудь может подсказать, как я могу использовать эти факторы для получения наиболее точных данных о популярных курсах?

Любая помощь высоко ценится.

Спасибо

3 ответа

Прежде чем дать вам некоторую субъективную формулу по этому поводу, я хотел бы указать вам на пару ссылок о байесовской статистике и о том, как IMDb оценивает фильмы

То, как вы выбираете веса для своего единого набора параметров, в вашем случае использования представляется весьма субъективным. У вас не так уж много параметров, чтобы играть ни с тем, ни с другим. Например, у вас есть количество отзывов... но значит ли это, что все они хорошие отзывы?

Вот как я бы это сделал:

  1. Положите подписчиков, рейтинги и отзывы в 3 отдельных списка
  2. Используйте функцию как max() чтобы найти наибольшее значение в списке, затем удалите это значение из списка, сделайте это 4 раза, каждый раз добавляя наибольшее значение в новый список (если хотите)
  3. Сделайте это для каждого списка

Кроме того, какой язык вы используете? Я знаю, что это будет работать для меня, но это может немного отличаться в зависимости от языка

Вы можете попробовать эту формулу ->

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,

Другие вопросы по тегам