【问题标题】:convert/normalize raw values on a continuous scale [0-inf] to another continuous scale (score) with range [0-5]将连续尺度 [0-inf] 上的原始值转换/规范化为范围为 [0-5] 的另一个连续尺度(分数)
【发布时间】:2019-01-28 15:38:26
【问题描述】:

目标是将连续尺度 [0-inf] 上的原始值转换/标准化为范围为 [0-5] 的另一个连续尺度(分数)。

我正在使用一项较早的研究,该研究使用了我尝试逆向工程的以下方法:

将 raw_value 转换为分数的公式是:
=MAX(0,MIN(5,(LN(raw_value)-LN(0.1))/LN(2) +1))

这意味着值是对数插值的。

因此,0.125 的值对应于 1.32,0.95 的值对应于 4.25,依此类推。

目标是更新阈值[0.1,0.2,0.4,0.8]

到新的阈值: [0.05,0.25,0.5,0.75]

换句话说,0.25 和 0.5 之间的值应该对应于 2.x 和 3.x 之间的分数。

它看起来很简单,但我陷入了这样的困境: =MAX(0,MIN(5,(LN(raw_value)-LN(0.05))/LN(?) +1))

由于新阈值是非对数序列,因此是否有可能为新阈值提出一个方程(No If 语句)?

【问题讨论】:

    标签: math normalize


    【解决方案1】:

    嗯,你的问题是实际上你的规模在它的边界处被夹住了,所以它实际上不是线性的。

    使用此公式,您不会从 到 ...因此您需要最小/最大钳位。

    另外,请注意,您的方程未定义为 r=0 ...

    您可以通过在日志中使用 r+1 而不是 r 来处理下限,这样,对于 r=0, ln(r+1)=ln(1)=0

    现在对于上限,不幸的是,使用简单的 ln 比例,您仍将瞄准 。为了解决这个问题,您需要限制输入范围,并按范围对输入进行归一化。

    【讨论】:

      猜你喜欢
      • 2020-01-10
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 2021-07-15
      相关资源
      最近更新 更多