Что вызывает это предупреждение в symfit? - PullRequest
1 голос
/ 06 апреля 2019

Рассмотрим этот простой код оптимизации:

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 Ответ

1 голос
/ 08 апреля 2019

Это происходит потому, что symfit в настоящее время всегда пытается рассчитать коэффициент определения (R ^ 2) для подбора. В этом случае, поскольку данных нет, и SS_res, и SS_tot равны нулю, что приводит к 0/0 и, следовательно, к предупреждению и результирующему nan в fit_results.

Теперь мы добавляем дополнительный интеллект к FitResults, так что он не будет рассчитан в первую очередь, но это предупреждение можно игнорировать.

...