SciPy 优化器_1
发布日期:2024-08-26 浏览次数:
SciPy 中的优化器
SciPy 的 模块提供了常用的最优化算法函数实现,可以调用这些函数完成我们的优化问题,比如查找函数的最小值,或者方程的根等。
优化函数
本质上,机器学习 中的所有算法都不过是一个将给定的数据最小化的复杂方程。
方程的根
NumPy 能够找到多项式和线性方程的根,但它不能找到 非线性方程 的根,例如:
在这种情况下,就需要使用 SciPy 的 函数。
这个函数有两个必须参数:fun - 表示方程的函数x0 - 初始猜测值
函数返回一个包含解决方法相关信息的对象。
实际解决方法在返回对象的属性 下给出:
实例
求方程 的根:
注意:返回的对象包含有关解决方法的更多信息。
实例
打印有关解决方案的所有信息(不仅仅是根目录的 )
函数最小化
在此上下文中,函数表示曲线,曲线有 高点 和 低点 。
高点被称为 最大值 。
低点称为 最小值 。
整个曲线中的最高点称为 全局最大值 ,而其余点称为 局部最大值 。
整个曲线中的最低点称为 全局最小值 ,而其余的则称为 局部最小值 。
求最小值
我们可以使用 函数来最小化函数。
函数需要以下参数:
fun - 表示方程的函数
x0 - 初始猜测值
method - 要使用的方法名称,值可以是:
- CG
- BFGS
- Newton-CG
- L-BFGS-B
- TNC
- COBYLA
- SLSQP
callback - 每次优化迭代后调用的函数。
options - 定义其他参数的字典:
实例
使用 最小化函数 :