Python scipy.optimize.fmin_cg:“';由于精度损失,不一定达到预期误差;
我正在使用scipy.optimize.fmin_cg最小化函数。该函数获取各种数据集,fmin_cg为许多数据集返回良好的值,前3个数据集除外: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
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) 在这里看一些关于根查找/最小化的其他问题。没有什么灵丹妙药——知道你的问题空间是必要的,尝试替代算法是必须的。