计算最受欢迎课程的算法

时间:2016-08-28 10:59:26

标签: algorithm sorting math statistics popularity

我正在尝试获取有关学习门户网站上列出的课程的一些统计信息。其中之一是,根据以下三个因素获得4个最受欢迎的课程:

  • 课程的订阅者数量
  • 平均评分
  • 评论数量

我一直在考虑解决方案很长一段时间,但无法提出实现上述目标的最佳方法。

有人可以建议,我如何利用这些因素获得最流行的课程数据?

非常感谢任何帮助。

由于

3 个答案:

答案 0 :(得分:1)

在给你一些关于它的主观公式之前,我想指出一些关于bayesian statistics以及如何IMDb rates films

的链接

如何为您的单组参数选择权重在您的用例中似乎非常主观。您没有太多参数可供使用。例如,你有很多评论...但这是否意味着他们都是好评?

答案 1 :(得分:0)

您可以尝试此公式 - >

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

答案 2 :(得分:0)

我就是这样做的:

  1. 将订阅者,评分和评论分为3个单独的列表
  2. 使用max()之类的函数查找列表中的最大值,然后从列表中删除该值,执行4次,每次将最大值添加到新列表中(如果需要)< / LI>
  3. 为每个列表执行此操作
  4. 你还用什么语言?我知道这对我有用,但根据语言可能略有不同