行业新闻

SciPy 优化器

SciPy 中的优化器

SciPy 的 模块提供了常用的最优化算法函数实现,可以调用这些函数完成我们的优化问题,比如查找函数的最小值,或者方程的根等。


优化函数

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


方程的根

NumPy 能够找到多项式和线性方程的根,但它不能找到 非线性方程 的根,例如:

在这种情况下,就需要使用 SciPy 的 函数。

这个函数有两个必须参数:fun - 表示方程的函数x0 - 初始猜测值

函数返回一个包含解决方法相关信息的对象。

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

实例

求方程 的根:

注意:返回的对象包含有关解决方法的更多信息。
实例

打印有关解决方案的所有信息(不仅仅是根目录的 )


函数最小化

在此上下文中,函数表示曲线,曲线有 高点低点

高点被称为 最大值

低点称为 最小值

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

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


求最小值

我们可以使用 函数来最小化函数。

函数需要以下参数:

fun - 表示方程的函数

x0 - 初始猜测值

method - 要使用的方法名称,值可以是:

  • CG
  • BFGS
  • Newton-CG
  • L-BFGS-B
  • TNC
  • COBYLA
  • SLSQP

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

options - 定义其他参数的字典:

实例

使用 最小化函数 :

平台注册入口