将值绘制到轨道中的直方图上

时间:2015-08-11 14:52:10

标签: ruby-on-rails algorithm statistics histogram ranking

我意识到有几个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应用程序中执行此操作?

谢谢!

1 个答案:

答案 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。效果很好!