如何获取scipy.optimize.minimize自动选择的优化方法?
获取scipy.optimize.minimize自动选择的优化方法
嘿,我之前也碰到过这个困惑!其实不用费劲翻文档找半天,返回的OptimizeResult对象里就藏着你要的信息——只需要访问它的method属性就行。
当你不指定method参数时,scipy.optimize.minimize会根据你的问题特征(比如有没有约束、目标函数是否可导等)自动挑选最合适的优化算法,而这个被选中的方法名会被存在结果对象的method字段里。
举个例子,把你的代码稍微修改一下就能看到结果:
import scipy.optimize as opt def functionTOminimize(x): return x[0]**2 + x[1]**2 initialGuess = [1, 1] cons = ({'type': 'ineq', 'fun': lambda x: x[0] + x[1] - 1}) # 运行优化 solution = opt.minimize(functionTOminimize, initialGuess, constraints=cons, options={'disp':True,'verbose':2}) # 打印自动选择的方法 print("自动选择的优化方法:", solution.method) # 再打印完整结果(可选) print(solution)
运行这段代码后,你就能在输出里看到类似SLSQP或者其他方法名——这就是程序自动选的优化算法。
补充一句:官方文档里其实在OptimizeResult的属性说明里提到了method字段,可能你之前浏览的时候没注意到这个细节~
内容的提问来源于stack exchange,提问作者theother
相关产品推荐
相关产品推荐

