python中的优化器有哪些_python中的优化器有哪些_Python SciPy 优化器(Optimizers)

1、SciPy优化器

优化器是SciPy中定义的一组过程,它们可以找到函数的最小值或方程式的根。

2、优化函数

本质上,机器学习中的所有算法不过是一个复杂的方程式,需要借助给定的数据将其最小化。

3、方程的根

NumPy能够找到多项式和线性方程式的根,但无法找到非线性方程式的根,如下所示:

x + cos(x)

为此,可以使用SciPy的optimize.root函数。

此函数接受两个必需的参数:

fun-表示方程的函数。

x0-根的初始猜测。

该函数返回一个对象,其中包含有关解决方案的信息。

实际的解决方案在返回对象的属性x下给出:

例如:

找出等式的根x + cos(x):from scipy.optimize import root

from math import cos

def eqn(x):

return x + cos(x)

myroot = root(eqn, 0)

print(myroot.x)

注意:返回的对象具有有关解决方案的更多信息。

例如:

打印有关解决方案的所有信息(而不仅仅是根的x)print(myroot)

4、函数最小化

在此,函数代表曲线,曲线具有高点和低点。

高点称为最大值。

低点称为极小值。

整个曲线中的最高点称为全局最大值,而其余曲线称为局部最大值。

整个曲线的最低点称为全局最小值,而其余曲线称为局部最小值。

5、找到最小值

我们可以使用scipy.optimize.minimize()函数来最小化该函数。

minimize()函数采用以下参数:

fun-表示方程的函数。

x0-根的初始猜测。

方法-要使用的方法的名称。 合法值:

'CG'

'BFGS'

'Newton-CG'

'L-BFGS-B'

'TNC'

'COBYLA'

'SLSQP'

callback-每次优化迭代后调用的函数。

options-定义额外参数的字典:

{

"disp": boolean - print detailed description

"gtol": number - the tolerance of the error

}

例如:

使用BFGS最小化函数x ^ 2 + x + 2:from scipy.optimize import minimize

def eqn(x):

return x**2 + x + 2

mymin = minimize(eqn, 0, method='BFGS')

print(mymin)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值