【问题标题】:'Covariance of the parameters could not be estimated' for exp decay curve_fit in PythonPython中exp衰减曲线拟合的“无法估计参数的协方差”
【发布时间】:2022-02-16 20:43:35
【问题描述】:

我尝试使用 exp 衰减拟合数据集,curve_fit 引发此错误“'无法估计参数的协方差'”。然后我按照这个链接尝试了另一个包,仍然给出了奇怪的估计。 scipy curve_fit raises "OptimizeWarning: Covariance of the parameters could not be estimated"

X: array([18827., 18828., 18829., 18830., 18831., 18832., 18833., 18834.,
       18835., 18836., 18837., 18838., 18839., 18840., 18841., 18842.,
       18843., 18844., 18845., 18846., 18847., 18848., 18849., 18850.,
       18851., 18852., 18853., 18854., 18855., 18856., 18857., 18858.,
       18859., 18860., 18861., 18862., 18863., 18864., 18865., 18866.,
       18867., 18868., 18869., 18870., 18871., 18872., 18873., 18874.,
       18875., 18876., 18877., 18878., 18880., 18881., 18882., 18883.,
       18884., 18885., 18886., 18887., 18889., 18891., 18892., 18893.,
       18894., 18895., 18896., 18897., 18898., 18899., 18900., 18901.,
       18902., 18903., 18904., 18905., 18906., 18907., 18908., 18909.,
       18910., 18911., 18912., 18913., 18914., 18915., 18916., 18917.,
       18918., 18919., 18920., 18921., 18922., 18923., 18924., 18925.,
       18926., 18927., 18928., 18929., 18930., 18931., 18932., 18933.,
       18934., 18935., 18936., 18937., 18938., 18939., 18940., 18941.,
       18942., 18943., 18944., 18945., 18946., 18947., 18948., 18949.,
       18950., 18951., 18952., 18953., 18954., 18955., 18956., 18957.,
       18958., 18959., 18960., 18961., 18962., 18963., 18964., 18965.,
       18966., 18967., 18968., 18969., 18970., 18971., 18972., 18973.,
       18974., 18975., 18976., 18977., 18978., 18979., 18980., 18981.,
       18982., 18983., 18984., 18985., 18986., 18987., 18988., 18989.,
       18990., 18991., 18992., 18993., 18994., 18995., 18996., 18997.,
       18999., 19000., 19001., 19002., 19003., 19004., 19005., 19006.,
       19007., 19008., 19009., 19010., 19011., 19012., 19013., 19014.,
       19015., 19016., 19017., 19018., 19019., 19020., 19021., 19022.])


y: array([0.25, 0.24, 0.25, 0.27, 0.27, 0.27, 0.26, 0.26, 0.26, 0.26, 0.26,
       0.3 , 0.3 , 0.3 , 0.3 , 0.3 , 0.3 , 0.31, 0.31, 0.31, 0.31, 0.31,
       0.31, 0.35, 0.35, 0.35, 0.35, 0.35, 0.32, 0.32, 0.32, 0.32, 0.32,
       0.32, 0.32, 0.32, 0.32, 0.32, 0.32, 0.28, 0.28, 0.28, 0.28, 0.29,
       0.28, 0.25, 0.25, 0.25, 0.25, 0.26, 0.25, 0.25, 0.24, 0.24, 0.24,
       0.24, 0.22, 0.22, 0.23, 0.23, 0.23, 0.24, 0.24, 0.24, 0.24, 0.24,
       0.24, 0.25, 0.24, 0.24, 0.25, 0.25, 0.25, 0.25, 0.25, 0.24, 0.24,
       0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24,
       0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24,
       0.23, 0.23, 0.23, 0.25, 0.25, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23,
       0.23, 0.21, 0.21, 0.2 , 0.2 , 0.2 , 0.21, 0.21, 0.21, 0.21, 0.21,
       0.21, 0.21, 0.21, 0.19, 0.19, 0.19, 0.2 , 0.2 , 0.2 , 0.2 , 0.19,
       0.19, 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 ,
       0.2 , 0.22, 0.22, 0.22, 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.19, 0.19,
       0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.22, 0.24, 0.25, 0.25, 0.25,
       0.25, 0.26, 0.26, 0.31, 0.31, 0.31, 0.33, 0.33, 0.33, 0.32, 0.29,
       0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29, 0.29,
       0.29, 0.29, 0.26, 0.26, 0.26])

有人可以指导我吗?

【问题讨论】:

  • 指导您完成什么?你还没有包含代码,所以有人能说什么呢?您是否提供了合理的起始值?
  • 好吧,this is the scatter plot of your data。你为什么要尝试用指数衰减函数来拟合它?

标签: python curve-fitting lmfit


【解决方案1】:

此警告告诉您一个或多个变量实际上并未改变拟合。根据您的参数报告和数据范围,问题几乎可以肯定是因为您的初始值相距甚远,以至于无法作为细化的无用起点。数据似乎也很可能无法通过指数衰减很好地解释。

要进行曲线拟合,您必须从所有不离谱的参数的合理初始值开始。在开始拟合之前使用初始模型绘制数据。

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 2017-05-23
    • 1970-01-01
    • 2016-10-09
    • 2012-12-30
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    相关资源
    最近更新 更多