Python scipy.optimize.fmin_cg:“';由于精度损失,不一定达到预期误差;

Python scipy.optimize.fmin_cg:“';由于精度损失,不一定达到预期误差;,python,scipy,mathematical-optimization,minimize,Python,Scipy,Mathematical Optimization,Minimize,我正在使用scipy.optimize.fmin_cg最小化函数。该函数获取各种数据集,fmin_cg为许多数据集返回良好的值,前3个数据集除外: DATASET: 0 Warning: Desired error not necessarily achieved due to precision loss. Current function value: 2.988730 Iterations: 1 Function evaluation

我正在使用scipy.optimize.fmin_cg最小化函数。该函数获取各种数据集,fmin_cg为许多数据集返回良好的值,前3个数据集除外:

DATASET:  0
Warning: Desired error not necessarily achieved due to precision loss.
         Current function value: 2.988730
         Iterations: 1
         Function evaluations: 32
         Gradient evaluations: 5
[ 500.00011672   -0.63965932]

DATASET:  1
Warning: Desired error not necessarily achieved due to precision loss.
         Current function value: 3.076145
         Iterations: 1
         Function evaluations: 32
         Gradient evaluations: 5
[ 500.00013434   -0.58092425]

DATASET:  2
Warning: Desired error not necessarily achieved due to precision loss.
         Current function value: 3.160507
         Iterations: 1
         Function evaluations: 32
         Gradient evaluations: 5
[ 500.00014962   -0.52933729]

DATASET:  3
Optimization terminated successfully.
         Current function value: 4.000000
         Iterations: 1
         Function evaluations: 8
         Gradient evaluations: 2
[ 500.00729686   23.29306024]

DATASET:  4
Optimization terminated successfully.
         Current function value: 4.000000
         Iterations: 1
         Function evaluations: 8
         Gradient evaluations: 2
[ 500.00915456   30.21053839]

DATASET:  5
Optimization terminated successfully.
         Current function value: 4.000000
         Iterations: 1
         Function evaluations: 8
         Gradient evaluations: 2
[ 500.01103431   37.37704849]

DATASET:  6
Optimization terminated successfully.
         Current function value: 4.000000
         Iterations: 1
         Function evaluations: 8
         Gradient evaluations: 2
[ 500.03064942  118.1983465 ]

DATASET:  7
Optimization terminated successfully.
         Current function value: 4.000000
         Iterations: 1
         Function evaluations: 8
         Gradient evaluations: 2
[ 500.03454471  135.11401129]

DATASET:  8
Optimization terminated successfully.
         Current function value: 4.000000
         Iterations: 1
         Function evaluations: 8
         Gradient evaluations: 2
[ 500.03848004  152.4157083 ]
等等


优化后的结果以x0=[500,-1]的初始猜测开始,在所有成功案例中,将结果从500降低到300左右,但无论选择什么值,结果都不会接近预期。(应该有很大的区别,我得到的是微小的变化,其中一些之间的比率应该高达4。但是,返回数组中的第二个值的行为与预期相同)

没有数据和拟合函数,这一切都只是猜测。(1) 对于那些数据集和工作的数据集,函数在您的猜测中是什么样子的。(2) 你最初的猜测对解算器有多有用?你是给了它一条通向答案的清晰路径,还是把它放在某个局部最小值上,让它反复思考而不出来。(3) 在这里看一些关于根查找/最小化的其他问题。没有灵丹妙药——知道你的问题空间是必要的,尝试替代算法是必须的。没有数据和拟合函数,一切都只是猜测。(1) 对于那些数据集和工作的数据集,函数在您的猜测中是什么样子的。(2) 你最初的猜测对解算器有多有用?你是给了它一条通向答案的清晰路径,还是把它放在某个局部最小值上,让它反复思考而不出来。(3) 在这里看一些关于根查找/最小化的其他问题。没有什么灵丹妙药——知道你的问题空间是必要的,尝试替代算法是必须的。