我正在尝试获取有关学习门户上列出的课程的一些统计数据。其中之一是,根据以下三个因素获得 4 个最受欢迎的课程:
- 课程订阅人数
- 平均评分
- 评论数
我一直在考虑解决方案很长一段时间,但无法想出实现上述目标的最佳方法。
任何人都可以建议,我如何使用这些因素来获得热门课程的最准确数据?
非常感谢任何帮助。
谢谢
我正在尝试获取有关学习门户上列出的课程的一些统计数据。其中之一是,根据以下三个因素获得 4 个最受欢迎的课程:
我一直在考虑解决方案很长一段时间,但无法想出实现上述目标的最佳方法。
任何人都可以建议,我如何使用这些因素来获得热门课程的最准确数据?
非常感谢任何帮助。
谢谢
在给你一些关于它的主观公式之前,我想向你指出一些关于贝叶斯统计和IMDb 如何评价电影的链接
在您的用例中,您如何为单组参数选择权重似乎是非常主观的。你没有太多的参数可以玩。例如,您有很多评论……但这是否意味着所有评论都是好评论?
你可以试试这个公式->
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
out of的值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
。
我会这样做:
max()
在列表中查找最大值的函数,然后从列表中删除该值,执行 4 次,每次将最大值添加到新列表中(如果需要)还有你用的是什么语言?我知道这对我有用,但可能会因语言而略有不同