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