Ошибка атрибута из объекта Minimizer, возвращенная из функции scipy.optimize.minimize()

Используя функцию scipy.optimize.minimize(), я показал разные результаты, используя разные методы для одной и той же целевой функции. Чтобы оценить пригодность к приему, я использую, чтобы рассматривать уменьшенный ци-квадрат в качестве первого критерия. Через некоторое время я закончил с этим полезным руководством http://newville.github.io/lmfit-py/fitting.html, где указано, что уменьшенный хи-квадрат задается как атрибут объекта Minimizer, возвращаемого из метода минимизации () функция. Но если я сделаю

minobj = scipy.optimize.minimize(...)
minobj.redchi

я получил

 AttributeError: redchi

Между тем minobj.message и minobj.success отображаются правильно. Есть предположения?

2 ответа

Решение

Документация немного вводит в заблуждение --- если вы посмотрите на lmfit/minimizer.pyи выполните строку поиска для "redchi" во всем файле, он появляется только один раз, и это в leastsq() метод. Таким образом, в основном, это только вычисляет уменьшенный хи-квадрат для наименьших квадратов.

Если вы чувствуете, что можете, вы можете добавить redchi с другими методами в соответствующих местах, разветвите репозиторий lmfit github и зафиксируйте ваши изменения.

В дополнение к ответу Эшвина вы всегда можете просто использовать:

result = lmfit.minimize(...)
x2 = result.chisqr
nfree = result.nfree
red_x2 = x2/nfree
Другие вопросы по тегам