【问题标题】:Creating Normal Distribution of MySQL Data Using Ruby on Rails使用 Ruby on Rails 创建 MySQL 数据的正态分布
【发布时间】:2018-05-10 21:07:56
【问题描述】:

我有一个包含三列的 MySQL 表:身高、体重、性别。该表被用作我的项目的模型。 RoR 中是否有方法函数可以让我根据数据计算正态分布?

例如,我想为男性创建一个钟形曲线,为女性创建一个钟形曲线,然后能够确定任何给定的身高/体重值设置为男性或女性的可能性。新数据总是会被添加,所以分布不会是静态的。

我是否应该尝试在 MySQL 中创建一个函数来创建分布,然后使用一个 RoR 方法来根据分布评估输入,或者这一切都可以在 RoR 中完成吗?

我正在使用 Ruby 2.3 和 rails 5.1.6。

【问题讨论】:

  • 我没有尝试过,但如果您的数据大小适中,this gem 看起来很有希望。如果您正在处理非常大的数据集,您可能会看到以数据库为中心的解决方案会提高性能。
  • 你是什么意思,“根据数据计算正态分布”?如果身高和体重服从正态分布,我会感到非常惊讶。而且,您是说要计算 P(g|h,w) 吗?我不确定您是否需要为此进行分发,但我并没有那么认真地考虑过。
  • MySQL 有一个STDDEV() 方法。这听起来像钟形曲线......

标签: mysql ruby-on-rails ruby normal-distribution bell-curve


【解决方案1】:

我把它弄得比它需要的更复杂。我使用 AVG() 获得平均值,使用 STDDEV() 获得每个身高和体重的标准差。然后我从下限的平均值中添加然后减去 SD,并将 SD 添加到上限的平均值,然后首先评估高度是否在目标的一个标准偏差内,然后是体重,然后使用求概率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    相关资源
    最近更新 更多