を最適化する際に呼び出すことはできません私は例外:「numpy.float64」オブジェクト
例外得続ける:関数を最小化しようとしたときに「numpy.float64」オブジェクトは、
呼び出すことはできません。
私は
def testLLCalc():
mmc = MortalityModelCalibrator()
a = mmc.log_likelihood(2000, np.array([[0.6, 0.2, 0.8]]))
として最小化しようとしているが、私は試してみて、私は上記の例外を取得
x0 = np.array([0, 0, 0])
res = minimize(-a[0], x0)
を行うことによって、それを最小化するときに関数を呼び出すことができます。どんな助けもありがとう。完全なトレースバックは、次のとおりです。
Error
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\unittest\case.py", line 59, in testPartExecutor
yield
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\unittest\case.py", line 601, in run
testMethod()
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\site-packages\nose\case.py", line 198, in runTest
self.test(*self.arg)
File "C:\Users\Matt\Documents\PyCharmProjects\Mortality\src\PennanenMortalityModel_test.py", line 57, in testLLCalc
res = minimize(-a[0], x0)
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\site-packages\scipy\optimize\_minimize.py", line 444, in minimize
return _minimize_bfgs(fun, x0, args, jac, callback, **options)
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\site-packages\scipy\optimize\optimize.py", line 913, in _minimize_bfgs
gfk = myfprime(x0)
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\site-packages\scipy\optimize\optimize.py", line 292, in function_wrapper
return function(*(wrapper_args + args))
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\site-packages\scipy\optimize\optimize.py", line 688, in approx_fprime
return _approx_fprime_helper(xk, f, epsilon, args=args)
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\site-packages\scipy\optimize\optimize.py", line 622, in _approx_fprime_helper
f0 = f(*((xk,) + args))
File "C:\Program Files (x86)\JetBrains\WinPython-64bit-3.5.3.0Qt5\python-3.5.3.amd64\lib\site-packages\scipy\optimize\optimize.py", line 292, in function_wrapper
return function(*(wrapper_args + args))
Exception: 'numpy.float64' object is not callable
log_likelihoodは、定義された関数です: 'DEF log_liklihood(自己、年、V): ミリメートル= self.create_mortality_model() mm.set_v(V) リターンmm.log_liklihood(self.populationData、self.deathRateData、年) '。以前は2スカラーのタプルを返していたので、なぜそれをインデックスしていたのですか?私は今、それらのうちの1つを削除して、ただ1つのスカラーを返すべきですが、それでもまだ動作していません。 –
しかし、あなたはどのような機能を最小限に抑えていますか?スカラーやタプルではなく 'function'です。 – hpaulj
さて、log_likelihood関数はスカラーを返す別の関数を返します。 –