是什么导致此警告同时发生?

时间:2019-04-06 16:47:52

标签: python optimization scipy symfit

考虑以下简单的优化代码:

from symfit import *


x1 = 1
x2 = 4
p1, p2 = parameters('p1, p2')
model = p1*p2
constraints = [
    Eq(x1*p1+(x2-x1)*p2, 1),
    Ge(p1, p2),
    Ge(p2, 0)
    ]

fit = Fit(- model, constraints=constraints)
fit_result = fit.execute()
print(fit_result)

这会给我以下警告:

/home/user/.local/lib/python3.5/site-packages/symfit/core/fit.py:1783: RuntimeWarning: invalid value encountered in double_scalars
  return 1 - SS_res/SS_tot

是什么原因造成的?

1 个答案:

答案 0 :(得分:1)

之所以会这样,是因为symfit当前总是尝试计算适合度的coefficient of determination(R ^ 2)。在这种情况下,由于没有数据,因此SS_res和SS_tot均为零,从而导致0/0,从而导致警告以及nan中的fit_results

我们现在为FitResults添加了额外的情报,因此一开始就不会对其进行计算,但是可以忽略此警告。