Scipy sigmoid曲线拟合

2023-11-24

我有一些数据点,想找到一个拟合函数,我想累积高斯 sigmoid 函数会适合,但我真的不知道如何实现这一点。

这就是我现在所拥有的:

import numpy as np
import pylab
from scipy.optimize import curve_fit

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

xdata = np.array([400, 600, 800, 1000, 1200, 1400, 1600])
ydata = np.array([0, 0, 0.13, 0.35, 0.75, 0.89, 0.91])
         
popt, pcov = curve_fit(sigmoid, xdata, ydata)
print(popt)

x = np.linspace(-1, 2000, 50)
y = sigmoid(x, *popt)

pylab.plot(xdata, ydata, 'o', label='data')
pylab.plot(x,y, label='fit')
pylab.ylim(0, 1.05)
pylab.legend(loc='best')
pylab.show()

但我收到以下警告:

.../scipy/optimize/minpack.py:779: OptimizeWarning: 无法估计参数的协方差 类别=优化警告)

有人可以帮忙吗? 我也愿意接受任何其他可能性!我只需要以任何方式拟合该数据的曲线。


您可以为参数设置一些合理的界限,例如,

def fsigmoid(x, a, b):
    return 1.0 / (1.0 + np.exp(-a*(x-b)))

popt, pcov = curve_fit(fsigmoid, xdata, ydata, method='dogbox', bounds=([0., 600.],[0.01, 1200.]))

我有输出

[7.27380294e-03 1.07431197e+03]

曲线看起来像

enter image description here

(400,0) 处的第一个点因无用而被删除。你可以添加它,尽管结果不会改变太多......

UPDATE

请注意,边界设置为 ([low_a,low_b],[high_a,high_b]),因此我要求比例在 [0...0.01] 范围内,位置在 [600...1200] 范围内

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scipy sigmoid曲线拟合 的相关文章

随机推荐

  • 如何以编程方式绑定到静态属性?

    如何以编程方式绑定到静态属性 我可以用 C 来制作什么 Binding Source x Static local MyClass StaticProperty Update 是否可以进行 OneWayToSource 绑定 我知道 Two
  • d3 v4 geo绘制倒置边界

    当我在 SVG 元素中绘制百慕大三角形时 比例不是我所期望的 三角形应该延伸到框的边缘 并且填充是向后的 不是绘制三角形 而是绘制一个切掉三角形的正方形 var geojson features type Feature propertie
  • 在选定选项更改时显示和隐藏 html 元素

    在 JSP 页面中 我有一个下拉列表 当选择列表的第一个元素时 我希望在单击时显示一个文本区域 我是 Javascript Jquery 的新手 所以我显然在函数中遗漏了一些东西 文本区域从未显示 希望有人能帮忙 这是 HTML tr cl
  • 模型上的猫鼬 findOne 是否返回承诺?

    我有一个简单的 Node 模块 它导出一个进行数据库查询的函数 问题是该函数在数据库查询完成之前返回 use strict var mongoose require mongoose Model require entities user
  • 安装的python3.9在linux中不显示

    我按照此中的步骤安装了 python 3 9link sudo apt update sudo apt install python3 9 python3 9 sudo update alternatives install usr bin
  • 如何确定嵌入式系统中的最大堆栈使用率?

    当我给Keil编译器 callgraph 选项时 它为我静态计算准确的 最大堆栈使用量 唉 今天它给了我一条 最大堆栈使用量 284 字节 未知 没有堆栈大小的函数 消息 以及 没有堆栈信息的函数 列表 Nigel Jones 表示递归在嵌
  • 我是否需要在生产服务器上安装 Node.js 来托管 Angular 2?

    我正在尝试在我们的实时服务器 Windows 2008R2 IIS 7 5 服务器 上部署我的第一个 Angular 2 应用程序 MVC部分运行良好 我可以看到登录用户名并显示 MVC 布局的框架 但它总是将我重定向到 Error csh
  • 在“_strong id”类型的对象上找不到属性“标签”

    我正在根据本教程构建一个应用程序 http bit ly NI9kQe 它使用自定义 Web api 连接到 Web 服务器 要求之一是检测是否已点击 登录 或 注册 按钮 这是使用在界面生成器中为按钮设置的 标签 来完成的 注册按钮的标签
  • 绘图类绘制直线而不是曲线

    我有下面的代码 使用 UIBezierPath 绘制线条 代码使用addCurveToPoint它应该使用三次贝塞尔路径绘制曲线 但是代码的最终结果是绘制连接的直线 但是addLineToPoint没有被使用 可能发生了什么 为什么代码不绘
  • system() 的退出代码不符合预期

    system 函数返回的退出代码似乎是我从它调用的进程中获得的退出代码的 128 倍 从手册页 返回值 出错时返回的值为 1 例如 fork 2 失败 以及命令的返回状态 other 明智的 这是我所得到的 ls tinker c tink
  • 当项目具有复选框时,RecyclerView 项目不显示波纹/触摸反馈

    我希望 RecyclerView 中的项目在按下时有触摸反馈或波纹 但它们似乎不起作用 我认为这是因为复选框的原因 只有长按时才会出现波纹 简单按下则不会出现 有人可以帮我解决它吗 提前致谢 PD 我使用的是 ListView 项目布局父级
  • MSMQ - 无法从多播队列接收

    我试图了解多播在 MSMQ 中的工作原理 但我根本无法接收消息 即使是来自同一台计算机 我显然做错了什么 但看不出是什么 这就是我所在的地方 我手动创建了一个名为的非事务性专用队列MulticastTest然后将多播地址设置为234 1 1
  • 将值列表从 Python 传递到 SQL 查询的 IN 子句

    我正在尝试将如下列表传递给 sql 查询 x 1000000000164774783 1000000000253252111 我在用sqlalchemy and pyodbc连接到sql import pandas as pd from p
  • PHP html 电子邮件,使用 html 模板

    所以我正在尝试做一个 html 邮件系统 我的 html 我想成为一个模板 存储在一个单独的文件中 例如 div div div class content div div class footer div 当我想发送邮件时 我希望我的邮件
  • 使用 POST 重定向到 POST 响应的 JQuery 表单插件文件上传

    请大家帮忙 这是一个主要的拦截器 我有一个使用 NodeJS 的项目jQuery 表单插件 我正在尝试在其中上传文件的打字稿 文件上传后 服务器会向屏幕上呈现的 POST 消息发送响应 在 POST 响应呈现在屏幕上之前 文件确实已成功且完
  • Android Gradle 插件(警告)API“variant.getMergeResources()”已过时,已替换为“variant.getMergeResourcesProvider()”

    我正在尝试构建并运行这个存储库增强图像我遇到了这个错误 引起原因 java lang RuntimeException 创建 sfa 时出错 哪个深入到这个警告警告 应用程序编程接口 variant getMergeResources is
  • OS X 上的 HAXM 不断消失

    我最近使用 El Capitan 将我的 Android 开发环境转移到了 OS X 上 一切都按预期进行 我发现的唯一问题是 每次重新启动 PC 后 HAXM 都会从 dev 中消失 并且 Android Studio 在使用 HAXM
  • 不规则形状的碰撞检测

    我知道如何检查圆是否即将与正方形碰撞 并且我知道如何检测正方形是否即将与正方形碰撞 但是我将如何检测多边形是否即将与正方形碰撞 或者更好的是 当一个多边形即将与另一个多边形碰撞时 或者更好的是 当由不直的线条组成的形状与另一个相似的形状 多
  • 在 R 中绘制回归线

    我想在 R 中绘制一条简单的回归线 我已经输入了数据 但回归线似乎不正确 有人可以帮忙吗 x lt c 10 20 30 40 50 60 70 80 90 100 110 120 y lt c 10 18 25 29 30 28 25 2
  • Scipy sigmoid曲线拟合

    我有一些数据点 想找到一个拟合函数 我想累积高斯 sigmoid 函数会适合 但我真的不知道如何实现这一点 这就是我现在所拥有的 import numpy as np import pylab from scipy optimize imp