微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 sigmoid 曲线上找到点

如何解决在 sigmoid 曲线上找到点

也许是一个非常简单的问题,但我似乎找不到有效的答案。

我正在绘制一系列返回 sigmoid 曲线的值:

Sigmoid curve

使用的代码是(来自 User88484):

def sigmoid(x,L,x0,k,b):
    y = L / (1 + np.exp(-k*(x-x0)))+b
    return (y)

p0 = [max(po_array),np.median(sp_array),1,min(po_array)]

popt,pcov = curve_fit(sigmoid,sp_array,po_array,p0,method='dogBox')

print("Popt:",popt)
print()
print("Pcov:",pcov)

这将返回以下值:

弹出:[96.74093921 12.83580801 0.56406601 3.2468077]

Pcov: [[ 4.15866152e-01 -3.57909355e-05 -5.46449590e-03 -2.10617443e-01] [-3.57909355e-05 1.81185487e-03 -8.47729461e-06 7.55813943e-03] [-5.46449590e-03 -8.47729461e-06 1.48370347e-04 2.67572376e-03] [-2.10617443e -01 7.55813943e-03 2.67572376e-03 1.75321322e-01]]

鉴于此,当我获得 x 值时,如何找到曲线的 y 值?即如果 X = 20,曲线上那个点的 y 值是多少?

解决方法

popt 具有您定义的 sigmoid 函数(Lx0kb)的拟合值。将它们传递回 sigmoid

sigmoid(20,*popt)

curve_fitofficial docs 在示例的末尾与它非常接近。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。