我意识到有几个histogram gems,但我的问题有点独特。我不需要任何形式的图形或图像。我的rails应用程序有一个算法,为每个用户提供0到1之间的分数。 billybob的raw_score
可能是.00901而frankiejoe的raw_score
可能是.00071。
我没有考虑为什么要这样做,我想在直方图上绘制这些值,然后将平均raw_score
映射为50%,平均值加标准差约为65%(均值)减去标准偏差为35%),平均值加上2倍标准偏差为80%等。因此每个标准差单位为15百分位数。
我不需要实际的直方图/图像,我只想在加载到直方图后得到相应的直方图值。我基本上将数字转换为更美观的分数,例如billybob的histogram_score
现在可能是.987而frankiejoe可能是.471。目前,它只有几十个用户或分数,但我希望能够处理数千个用户/分数。
我想将转换后的值存储到我的数据库中。我现在的数字是raw_score:decimal
,我会将它们存储为histogram_score:decimal
。
我如何在我的rails应用程序中执行此操作?
谢谢!
答案 0 :(得分:0)
想出来了。因此descriptive_statistics宝石将为我完成此任务。
require 'descriptive_statistics'
data = [0.15, 0.25, 0.10, 0.05, 0.35, 0.10]
data.map {|score| data.percentile_rank(score)}
=> [66.66666666666666, 83.33333333333334, 50.0, 16.666666666666664, 100.0, 50.0]
在我的情况下,我只是循环遍历每个用户的raw_score并将其存储为percentile_score。效果很好!