考虑时间和活动的评级系统
我正在寻找一个评级系统,该系统不仅可以对投票数进行评级,还可以对时间和“活动”进行加权
。澄清一下:
考虑一个用户生成某些内容(例如图片)的网站。 还有另一种类型的用户可以对其他人的图片进行投票(范围为 1-5),但一张图片只能收到一票。
高效用户获得的评级源自他/她的照片收到的评级,但应该受到以下因素的影响:
- 图片制作的时间有多长
- 用户的效率如何
获得 3 和 4 分但仍每张图片 10 张的用户每周应该比那些获得 5 分但每周只制作 1 张照片并在几个月前停止的人获得更高的评分。
我一直在研究贝叶斯估计,但这只考虑与时间或生产力无关的投票总数。
我的数学能力很强,所以我需要的只是朝着正确的方向推动,我可能可以修改一些东西来满足我的需要。
I'm looking for a rating system that does not only weight the rating on number of votes, but also time and "activity"
To clarify a bit:
Consider a site where users produce something, like a picture.
There is another type of user that can vote on other peoples pictures (on a scale 1-5), but one picture will only recieve one vote.
The rating a productive user gets is derived from the rating his/hers pictures have recieved, but should be affected by:
- How long ago the picture was made
- How productive the user has been
A user who's getting 3's and 4's and still making 10 pictures per week should get higher rating than a person that have gotten 5's but only made 1 pic per week and stopped a few month ago.
I've been looking at Bayesian estimate, but that only considers the total amount of votes independent of time or productivity.
My math fu is pretty strong, so all I need is a nudge in right direction and I can probably modify something to fit my needs.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在这里做很多事情。
显而易见的方法是在内部计算中让分数随时间衰减,例如使用时间常数
T
的指数衰减。例如,使用value = initial_score*exp(-t/T)
,其中t
是自提交图片以来经过的时间。因此,如果T
是一个月,那么一个月后,该分数将贡献1/e
,即最初的 0.37 左右。 (顺便说一句,如果更方便的话,您也可以使用value -= (dt/T)*value
来进行差异化操作。)可能有一种方法可以使用贝叶斯方法来实现此目的,但似乎强行给我的。贝叶斯方法通常是根据一组(通常很大)先前数据来预测新事物,这些数据与您的模型并不直接匹配。
There are many things you could do here.
The obvious approach is to have your measure of the scores decay with time in your internal calculations, for example using an exponential decay with a time constant
T
. For example, usevalue = initial_score*exp(-t/T)
wheret
is the time that's passed since picture was submitted. So ifT
is one month, after one month this score will contribute1/e
, or about 0.37 that it originally did. (You can also do this differentially, btw, withvalue -= (dt/T)*value
, if that's more convenient.)There's probably a way to work this with a Bayesian approach, but it seems forced to me. Bayesian approaches are generally about predicting something new based on a (usually large) set of prior data, which doesn't directly match your model.