将偏好转换为评级
假设我有一个(例如)餐馆列表。许多用户会获得一份餐厅对列表,然后选择他们喜欢的两家餐厅之一(a la hotornot)。
我想将这些结果转换为绝对评级:对于每个餐厅,1-5 星(如果需要,评级可以是非整数)。
解决这个问题的一般方法是什么?
谢谢
Suppose I have a list of (e.g.) restaurants. A lot of users get a list of pairs of restaurants, and select the one of the two they prefer (a la hotornot).
I would like to convert these results into absolute ratings: For each restaurant, 1-5 stars (rating can be non-integer, if necessary).
What are the general ways to go with this problem?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会将每一个成对的决定视为对其中一家餐厅的赞成票,而将每个非首选合作伙伴视为反对票。计算所有用户和餐厅的投票,然后对它们进行平均排序(以便每个星星“权衡”一定数量的投票)。
I would consider each pairwise decision as a vote in favor of one of the restaurants, and each non-preferred partner as a downvote. Count the votes across all users and restaurants, and then sort cluster them equally (so that that each star "weighs" for a number of votes).
我想到了 Elo 评级。这就是国际象棋界根据你的胜/负/平局记录计算评级的方式。与得分已经很高的餐厅相比,输掉比赛所受到的惩罚要小于得分较低的餐厅,这有点像 PageRank 更关心来自排名也很高的网站的链接。您可能获得的分数没有上限;对于 1-5 星系统,您必须以某种方式重新标准化。
Elo ratings come to mind. It's how the chess world computes a rating from your win/loss/draw record. Losing a matchup against an already-high-scoring restaurant gets penalized less than against a low-scoring one, a little like how PageRank cares more about a link from a website it also ranks highly. There's no upper bound to your possible score; you'd have to renormalize somehow for a 1-5 star system.