0

我有大约 10.000 个向量,我想为每个向量拟合一条 sigmoid 曲线;在每种情况下,我都需要定义拟合的起始参数,所以我想自动找到这些参数。在 stackexchange 上,讨论了为非线性模型(一)自动查找起始值的策略,但这些讨论考虑了一些特定情况,例如拟合高斯。是否也有可以应用于 sigmoid 曲线的一般策略?

4

1 回答 1

0

如果有通用方法,它们将被普遍执行。您需要特殊情况的方法。

例如,如果您的 sigmoid 函数如下所示:

S(x) = L / (1 + exp( -k*(x-x0))

所以你想找到 L、k 和 x0,你可以这样进行:

我将调用您的数据 x[] 和 y[]

找到 y[] 的最大值并取比它大一点的值作为 L 的估计值

将 y[] 转换为

z[i] = log( L/y[i] - 1)

(请注意,如果 L 是 y[] 的最大值,那么最大值 y 的 z 将是未定义的,这就是为什么您应该使 L 大于最大值的原因;或者您可能会错过 z 的位置y 是最大值)

所以你寻求的关系是

z[i] ~ -k*(x[i]-x0) 

然后在 x[], z[] 上使用线性最小二乘估计 k 和 x0

于 2016-10-28T14:20:49.687 回答