Ошибка атрибута из объекта 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