2013-07-04 4 views
0

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

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

Я получаю

AttributeError: redchi 

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

ответ

0

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

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

+0

Спасибо за ответы. Я вычислил его по моему коду, как только я получу параметры. –

0

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

result = lmfit.minimize(...) 
x2 = result.chisqr 
nfree = result.nfree 
red_x2 = x2/nfree 
Смежные вопросы