这个归一化曲线是什么?常量 ^(常量 ^ 观察指数为 100)
What is this normalization curve? Constant ^ (Constant ^ Observation Indexed to 100)
抱歉,我什至不确定如何提出这个问题。我有一些在工作中一直使用的归一化曲线,我想了解更多关于它们的信息,所以我很聪明地谈论它们。它们的形状类似于 sigmoid 函数,但它们的一般公式如下:
常量 ^(常量 ^ 观察指数为 100)
首先,索引一个从 0 到 100 的变量,最高观测值等于 100,然后将不同斜率的曲线插入到下面的方程式中。
s1 = 0.0000000001 ^ (0.97 ^ 指数)
s2 = 0.0000000002 ^ (0.962 ^ 指数)
s3 = 0.0000000003 ^ (0.953 ^ 指数)
以此类推,直至s10。结果值在 0 和 1 之间压缩。s10 的斜率最陡,值向 1 倾斜,而 s1 的斜率最浅,值向 0 倾斜。
我认为他们非常聪明,而且他们很适合我们的目的,但我什至不知道如何称呼他们。谁能指出我正确的方向?再次对含糊不清以及标记不当表示歉意。
您描述的函数是 Gompertz functions 的特例; Gompertz 函数具有 S 形形状,在不同领域有许多应用。例如在生物学中,Gompertz 函数用于模拟细菌和肿瘤细胞的生长。
要了解您的方程与更一般的 Gompertz 函数的关系,让我们重写 s 的方程
附带说明一下,我们可以看到采用 s 的双对数(即 log log s)将方程线性化为指数的函数。
我们现在可以将其与更通用的 Gompertz 函数进行比较
取自然对数得到
我们再设a=1
,再取自然对数
所以你给出的方程在代数上与带参数的 Gompertz 函数相同
让我们绘制您在 post 中提供的三组参数的函数(我在这里使用 R,但在 Python 中很容易做类似的事情)
# Define a function f which takes the index and two parameters a and b
# We use a helper function scale01 to scale the values of f in the interval [0,1]
# using min-max scaling
scale01 <- function(x) (x - min(x)) / (max(x) - min(x))
f <- function(idx, a, b) scale01(a ^ (b ^ idx))
# Calculate s for the three different sets of parameters and
# using integer index values from 0 to 100
idx <- 0:100
lst <- lapply(list(
s1 = list(a = 0.0000000001, b = 0.97),
s2 = list(a = 0.0000000002, b = 0.962),
s3 = list(a = 0.0000000003, b = 0.953)),
function(pars) f(idx, a = pars$a, b = pars$b))
# Plot
library(ggplot2)
df <- cbind(idx = idx, stack(lst))
ggplot(df, aes(idx, values, colour = ind)) + geom_line()
抱歉,我什至不确定如何提出这个问题。我有一些在工作中一直使用的归一化曲线,我想了解更多关于它们的信息,所以我很聪明地谈论它们。它们的形状类似于 sigmoid 函数,但它们的一般公式如下:
常量 ^(常量 ^ 观察指数为 100)
首先,索引一个从 0 到 100 的变量,最高观测值等于 100,然后将不同斜率的曲线插入到下面的方程式中。
s1 = 0.0000000001 ^ (0.97 ^ 指数)
s2 = 0.0000000002 ^ (0.962 ^ 指数)
s3 = 0.0000000003 ^ (0.953 ^ 指数)
以此类推,直至s10。结果值在 0 和 1 之间压缩。s10 的斜率最陡,值向 1 倾斜,而 s1 的斜率最浅,值向 0 倾斜。
我认为他们非常聪明,而且他们很适合我们的目的,但我什至不知道如何称呼他们。谁能指出我正确的方向?再次对含糊不清以及标记不当表示歉意。
您描述的函数是 Gompertz functions 的特例; Gompertz 函数具有 S 形形状,在不同领域有许多应用。例如在生物学中,Gompertz 函数用于模拟细菌和肿瘤细胞的生长。
要了解您的方程与更一般的 Gompertz 函数的关系,让我们重写 s 的方程
附带说明一下,我们可以看到采用 s 的双对数(即 log log s)将方程线性化为指数的函数。
我们现在可以将其与更通用的 Gompertz 函数进行比较
取自然对数得到
我们再设a=1
,再取自然对数
所以你给出的方程在代数上与带参数的 Gompertz 函数相同
让我们绘制您在 post 中提供的三组参数的函数(我在这里使用 R,但在 Python 中很容易做类似的事情)
# Define a function f which takes the index and two parameters a and b
# We use a helper function scale01 to scale the values of f in the interval [0,1]
# using min-max scaling
scale01 <- function(x) (x - min(x)) / (max(x) - min(x))
f <- function(idx, a, b) scale01(a ^ (b ^ idx))
# Calculate s for the three different sets of parameters and
# using integer index values from 0 to 100
idx <- 0:100
lst <- lapply(list(
s1 = list(a = 0.0000000001, b = 0.97),
s2 = list(a = 0.0000000002, b = 0.962),
s3 = list(a = 0.0000000003, b = 0.953)),
function(pars) f(idx, a = pars$a, b = pars$b))
# Plot
library(ggplot2)
df <- cbind(idx = idx, stack(lst))
ggplot(df, aes(idx, values, colour = ind)) + geom_line()