我怎么能从系统中用户的业力计算业力的标准化值(0到1之间的值)?计算规范化的业力
标准化值应该反映用户相对于所有其他用户的业障值。
我想我可能必须包括所有业力的平均值和标准偏差,但我似乎无法提出正确的公式。
任何帮助?
我怎么能从系统中用户的业力计算业力的标准化值(0到1之间的值)?计算规范化的业力
标准化值应该反映用户相对于所有其他用户的业障值。
我想我可能必须包括所有业力的平均值和标准偏差,但我似乎无法提出正确的公式。
任何帮助?
min_karma = min(karmas)
max_karma = max(karmas)
normalized = (karma - min_karma)/(max_karma - min_karma)
这具有这样的特性,即用户(一个或多个)与因缘= min_karma得到的0的归一化业力,以及与用户的业力= max_karma得到1.另一些之间线性分布英寸你将不得不分开处理所有用户具有相同业力的特殊情况。
如果你愿意,你可以使用对数函数的非线性分布:
normalized = (log(karma) - log(min_karma))/(log(max_karma) - log(min_karma))
正是在这种情况下的业力不能低于1重要的,因为这可能影响结果。
你会想要计算每个用户所属的百分位数。在MySQL中,你可以做这样的:
http://forums.mysql.com/read.php?20,105223,105278#msg-105278
rank/total
其中排名为用户提供更低的因果报应的数量。
我想你可能想对这个业力设定一个“时间”限制。这样,最近的人得到业力,但2年前的人不会算。 这样一来,新人不仅渗透到底层。 – Daniel 2010-01-05 06:36:47