我试图理解scipy.optimize.least_squares
为什么存在于scipy
中。此功能可用于执行模型拟合。但是,可以使用scipy.optimize.minimize
来做同样的事情。唯一的区别是scipy.optimize.least_squares
在内部计算卡方,而如果要使用scipy.optimize.minimize
,他/她必须在用户希望最小化的函数内手动计算卡平方。另外,scipy.optimize.least_squares
不能被视为scipy.optimize.minimize
的包装,因为它支持的三个方法(trf
,dogbox
,lm
)根本不受{
所以我的问题是:
scipy.optimize.minimize
可以获得相同的结果时,为什么存在{scipy.optimize.minimize
不支持trf
、dogbox
和{谢谢。在
中的算法scipy.optimize.最小二乘法利用最小化问题的最小二乘结构来获得更好的收敛性(或使用的导数的低阶)。在
它类似于高斯-牛顿算法和牛顿方法的区别,参见Wikipedia或this question。在
特别是,高斯-牛顿只使用雅可比(一阶导数),而牛顿的方法也使用Hessian(二阶导数),这是昂贵的计算。在
相关问题 更多 >
编程相关推荐