gpt4 book ai didi

mysql - 如何根据用户声誉计算输入的重要性/权重?

转载 作者:行者123 更新时间:2023-11-29 08:40:40 28 4
gpt4 key购买 nike

我有几个系统,其中包含用户表以及某种形式的业力/权重/声誉。有时是用户发布的帖子数量,有时是用户在网站上的所有事件中收到的赞成/反对票数。

USER {
id int
name string
karma int
}

如何使用这些数字来计算该用户的“权重”或“权威”?例如,一名长期成员(member)的投票通常比全新用户的 4 票值(value)高得多。

我正在考虑将所有成员的总积分/业力/声誉相加,然后尝试得出 1-100 的等级。

SUM(user.points) / COUNT(user.*) = average user points

然后类似

CEIL(userA.points / average user points) = their weight on an issue

但是,这样的点也需要有一条曲线,因为我不希望拥有 5,000 个帖子/业力的人超过 20 个新用户的投票。

最佳答案

从数学上讲,最好的选择是根据相关用户的百分位排名的对数进行加权。然而,这在 SQL 中是很痛苦的。

更简单的方法是欺骗并假设均值与中位数相同(统计上这是一个非常糟糕的假设,但在编程上要简单得多):

 SELECT 1 - log10(SELECT COUNT (*) FROM user 
WHERE (SUM(user.points) / COUNT(user.*)) < user.points)
/ SELECT (COUNT (*) from user))

这样一来,你的前 10% 业力的影响力将是普通用户的一倍半,几乎是菜鸟影响力的两倍。显然,改变日志基数会扩展这个范围,其中自然日志(mysql 中的 log())会给上面 10% 的影响是菜鸟的 3 倍,是平均影响的两倍。 Log2() 更为极端。 (注意:需要减法,因为对数将为负数。)

如果您想要更严重的效果,您可以尝试对日志进行平方。 (注意:平方使对数平方为正,因此这里适合加法。)

如果你想要一个超精确的规则,你可以使用标准差,但 SQL 会变得麻烦且缓慢。这完全取决于你想在兔子洞里走多远......

关于mysql - 如何根据用户声誉计算输入的重要性/权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883595/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com