Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用lmfit模型对多峰数据进行最佳拟合

使用lmfit模型对多峰数据进行最佳拟合
EN

Stack Overflow用户
提问于 2019-03-23 21:56:19
回答 1查看 672关注 0票数 -1
代码语言:javascript
运行
AI代码解释
复制
import matplotlib.pyplot as plt
import numpy as np
from lmfit import Model
x=np.array([4698.031, 4698.027, 4698.024, 4698.021, 4698.017, 4698.014,4698.011, 4698.007, 4698.004, 4698.001, 4697.997, 4697.994, 4697.991, 4697.987, 4697.984, 4697.981, 4697.977, 4697.974, 4697.971, 4697.967, 4697.964, 4697.961, 4697.957, 4697.954, 4697.951, 4697.947, 4697.944, 4697.941, 4697.937, 4697.934, 4697.931, 4697.927, 4697.924, 4697.921, 4697.917])
y=np.array([0.56565, 0.586575, 0.70335, 0.991245, 1.447545, 4.944375, 11.97281, 18.22095, 19.7613, 17.13792, 13.35083, 10.26506, 7.898505, 5.084775, 2.4192, 1.34358, 0.829905, 1.31322, 3.2049, 4.0095, 2.83263, 1.51605, 0.643275, 0.48972, 0.432675, 0.084375, 0.135345, 0.362145, 0.34425, 0.307125, 0.469125, 0.297, 0.183255, 0.528855, 0.523125])
gmodel = Model(gaussian, prefix='p1_') + Model(gaussian, prefix='p2_')
params = gmodel.make_params(p1_amp=0.1, p1_cen=4697.97, p1_wid=0.005, p2_amp=0.5, p2_cen=4698.00, p2_wid=0.005)


params['p1_cen'].min = x.min()
params['p1_cen'].max = 4697.98
params['p2_cen'].min = 4697.98
params['p2_cen'].max = x.max()

result = gmodel.fit(y, params, x=x)

更新了程序的几个问题

  1. ,当我运行这个程序时,它给我一个错误。回溯(最近一次调用):

文件"",第7行,gmodel =Model(高斯,前缀=‘p1_’)+模型(高斯,前缀=‘p2_’)

NameError:未定义名称“”gaussian“”

为此,我包含了from lmfit.lineshapes import gaussian,并且它是有效的。

是对还是错??

  1. 添加库/包后,程序显示回溯(最近一次调用):

文件"",第9行,参数‘p1_’..min= x.min()

KeyError:'p1_cen‘

帮我解决这个问题。

  1. 删除params之后,程序运行没有任何错误,但是我该怎么做才能显示给定数据n最佳拟合数据的曲线图。我只是对给定的数据执行了plt.plot(x,y),但不知道如何才能获得最合适的数据.....
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-24 05:11:38

你需要给出更好的开始猜测。您的数据x范围从4697.8到4698.0,但是您最初对cen的猜测是1.0,远远超出了您的数据范围。将数据的初始值更改为更合理的值。

解决如何拟合两个峰值的问题的更新:

要拟合两个峰值,可以创建一个复合模型,如下所示

代码语言:javascript
运行
AI代码解释
复制
gmodel = Model(gaussian, prefix='p1_') + Model(gaussian, prefix='p2_')

result  = gmodel.fit(y, x=x, p1_amp=0.1, p1_cen=4697.97, p1_wid=0.005,
                     p2_amp=0.5, p2_cen=4698.00, p2_wid=0.005)

这将创建一个将2个高斯相加在一起的模型,并为一个模型的参数名称提供前缀p1_,为另一个模型的参数提供前缀p2_。然后,您可以在进行拟合时为每个参数指定初始值。

通常建议为每个模型创建一个lmfit.Parameters实例,这样可以进一步操作参数设置,例如设置上下限。对于这种模型,确保峰值不能重叠太近或重叠可能会有所帮助。你可以这样做:

代码语言:javascript
运行
AI代码解释
复制
gmodel = Model(gaussian, prefix='p1_') + Model(gaussian, prefix='p2_')

params = gmodel.make_params(p1_amp=0.1, p1_cen=4697.97, p1_wid=0.005,
                            p2_amp=0.5, p2_cen=4698.00, p2_wid=0.005)
params['p1_cen'].min = x.min()
params['p1_cen'].max = 4697.98
params['p2_cen'].min = 4697.98
params['p2_cen'].max = x.max()

result = gmodel.fit(y, params, x=x)

它为每个模型的cen参数设置min/max值,以便它们不能互换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55318773

复制
相关文章
超越stacking, 使用optuna对多模型进行加权融合
有些方案是使用线性回归或者逻辑回归模型进行学习,这种方案一般叫做stacking ensemble,但是这种方案一般是对可微的Loss进行优化的,无法直接对auc,acc等不可微的评价指标进行优化。
lyhue1991
2023/02/23
1.1K0
超越stacking, 使用optuna对多模型进行加权融合
使用onnx对pytorch模型进行部署
1.onnx runtime安装# 激活虚拟环境conda activate env_name # env_name换成环境名称# 安装onnxpip install onnx # 安装onnx runtimepip install onnxruntime # 使用CPU进行推理# pip install onnxruntime-gpu # 使用GPU进行推理复制代码2.导出模型import torch.onnx # 转换的onnx格式的名称,文件后缀需为.onnxonnx_file_name = "xx
阿珍
2022/09/27
8420
「PowerBI」使用TabularEditor进行PowerBIDeskTop模型开发最佳实践
虽然大体上都是同一个引擎,但最终的定位的原因PowerBIDeskTop数据模型只是单机版的运行,其运行的方式未能如Sqlserver的完整,所以使用TabularEditor读取到的元数据也有所不同。
Excel催化剂
2021/08/19
9010
「PowerBI」使用TabularEditor进行PowerBIDeskTop模型开发最佳实践
windows上使用TNN对模型进行性能分析
本文主要介绍如何使用TNN来对模型性能进行分析,并打印网络结构的每一个op耗时。主要步骤TNN的官方文档已经有介绍,但是官方使用平台都是基于Linux系统进行一些编译操作。
languageX
2021/11/01
1.9K0
ES(ElasticSearch)数据建模最佳实践之「一对多对多关系建模」
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/joining-queries.html
IT技术小咖
2023/01/30
2.7K0
ES(ElasticSearch)数据建模最佳实践之「一对多对多关系建模」
windows环境下使用virtualenv对python进行多版本隔离
最近在用python做一个文本的情感分析的项目,用到tensorflow,需要用python3的版本,之前因为《机器学习实战》那本书的缘故,用的是python2.7.所以目前的情况是要两个版本共存,之前看到身边有人为了解决这个问题,居然装了两款软件,pycharm用来做python2.7的开发,另一款用来做python3.6的开发,估计一定是不知道python的虚拟环境工具virtualenv.本文就来讲述一下这个工具是怎么用的,同时也讲一下,如何在pycharm中使用virtualenv.
小小科
2018/09/28
1.9K0
windows环境下使用virtualenv对python进行多版本隔离
最近在用python做一个文本的情感分析的项目,用到tensorflow,需要用python3的版本,之前因为《机器学习实战》那本书的缘故,用的是python2.7.所以目前的情况是要两个版本共存,之前看到身边有人为了解决这个问题,居然装了两款软件,pycharm用来做python2.7的开发,另一款用来做python3.6的开发,估计一定是不知道python的虚拟环境工具virtualenv.本文就来讲述一下这个工具是怎么用的,同时也讲一下,如何在pycharm中使用virtualenv. 1. v
小小科
2018/05/03
1.4K0
windows环境下使用virtualenv对python进行多版本隔离
如何使用多类型数据预训练多模态模型?
在训练过程中使用更多数据一直是深度学习提效的重要方法之一,在多模态场景也不例外。比如经典的CLIP模型,使用了大规模的网络图文匹配数据进行预训练,在图文匹配等任务上取得非常好的效果。
圆圆的算法笔记
2022/09/22
2.2K0
如何使用多类型数据预训练多模态模型?
linux 使用jq对json数据进行操作
背景: 通过jmeter生成的resultReport报告,在linux上需要获取到报告结果数据。
小白will
2019/01/28
3.9K0
理解回归分析--机器学习与R语言实战笔记(第四章)
回归是一种有监督的学习方式,用于建模分析一个独立变量(响应变量)和一个或多个非独立变量(预测变量)之间的关联。
用户1075469
2021/12/18
9930
理解回归分析--机器学习与R语言实战笔记(第四章)
数据库(三)--多对多,一对多,一对一
那么,我们要是想查询python是由那几家出版社出版的(虽然一般只是一家) ,我们可以这样做:
西西嘛呦
2020/08/26
1.4K0
RESTful API 最佳实践(阮一峰)
它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。
java思维导图
2018/12/13
2.8K0
RESTful API 最佳实践(阮一峰)
使用Trimmomatic对NGS数据进行质量过滤
Trimmomatic 软件可以对NGS测序数据进行质量过滤,其去除adapter的功能只是针对illumina的序列,从reads的3’端识别adapter序列并去除,相比cutadapt,少了几分灵活性。但是在过滤低质量序列时,采用了滑动窗口的算法,给定窗口长度和步长,如果该窗口内所有碱基的平均质量值低于阈值,则将该窗口及其以后的碱基全部去除。对于数据量很多的reads, 滑动窗口算法比cutadapt的算法运行速度更快。官网如下
生信修炼手册
2020/05/08
3.3K0
使用Trimmomatic对NGS数据进行质量过滤
使用Python对Instagram进行数据分析
Instagram是最大的照片分享社交媒体平台,每月有5亿活跃用户,每天会上传9500万张照片和视频到Instagram上。它有大量的数据和巨大的潜力。这篇文章将教会你如何使用Instagram作为数据的来源,以及如何将它作为你的项目的开发者。 关于API和工具 Instagram有一个官方的API,但它已经过时了,目前在你能用它做的事情非常有限。因此,在这篇文章中,我将使用LevPasha的非官方Instagram API,它支持所有的主要功能,如follow,上传照片和视频等。它是用Python编写的。
AiTechYun
2018/03/02
2.9K1
使用Python对Instagram进行数据分析
RESTful API 最佳实践(阮一峰)
它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。
用户1257393
2018/12/19
1.7K0
RESTful API 最佳实践(阮一峰)
MATLAB对Googlenet模型进行迁移学习
使用训练好的模型进行图像分类 我这里训练的模型是对细胞显微图像进行分类,包括BYST,GRAN,HYAL,MUCS,RBC,WBC,WBCC七种细胞。
全栈程序员站长
2022/09/21
9930
MATLAB对Googlenet模型进行迁移学习
使用fastp对NGS数据进行质量过滤
fastp是最近新出的一款NGS数据质量过滤工具,相比传统的QC工具,有两个主要特点,第一个就是运行速度快,第二个就是提供了质控前后数据详细统计结果。github地址如下
生信修炼手册
2020/05/08
5.7K0
小程序使用WXS对页面数据进行处理
WXS(WeiXin Script)是小程序的一套脚本语言,WXS 就是在 page-frame 中运行的 JS,可以对 view 数据做一些变换。在wxml页面中,只能在插值{{ }}中写简单的js表达式,而不能调用方法。
青年码农
2020/11/23
1.7K0
小程序使用WXS对页面数据进行处理
使用Python对Excel数据进行排序,更高效!
表排序是Excel中的一项常见任务。我们对表格进行排序,以帮助更容易地查看或使用数据。然而,当你的数据很大或包含大量计算时,Excel中的排序可能会非常慢。因此,这里将向你展示如何使用Python对Excel数据表进行排序,并保证速度和效率!
fanjy
2022/11/16
5.3K0
使用Python对Excel数据进行排序,更高效!
点击加载更多

相似问题

Lmfit分峰拟合

11

使用LMFIT将多峰函数拟合到DataSet

11

用lmfit库拟合python中的多峰曲线

12

使用Lmfit对Python中的数据进行高斯拟合

11

无法使用lmfit进行拟合

119
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档