当前位置:   article > 正文

scipy.optimize函数介绍

scipy.optimize


前言

简单使用scipy.optimize,训练逻辑回归损失函数,得到权值。

一、scipy.optimize模块包含什么?

该scipy.optimize包提供几种常用的优化算法。可以使用详细列表: scipy.optimize(也可以通过help(scipy.optimize)找到)。

该模块包含:

1、使用多种算法(例如BFGS,Nelder-Mead单形,牛顿共轭梯度,COBYLA或SLSQP)对多元标量函数进行无约束和无约束的最小化(最小化)

2、全局(强力)优化例程(例如,盆地跳动,differential_evolution)

3、最小二乘最小化(least_squares)和曲线拟合(curve_fit)算法

4、标量单变量函数最小化器(minimum_scalar)和根查找器(牛顿)

5、使用多种算法(例如,混合鲍威尔,莱文贝格-马夸特或大型方法,例如牛顿-克里洛夫)的多元方程组求解器(root)。

二、使用步骤

1、函数介绍

import numpy as np
from scipy.optimize import minimize
  • 1
  • 2

函数入参:

scipy.optimize.minimize(
					   fun,  #可调用的目标函数。
                       x0,  #ndarray,初值。(n,)
                       args=(), #额外的参数传递给目标函数及其导数
                       method=None, #类型的解算器。应该是其中之一:
									#‘Nelder-Mead’、‘Powell’
									#‘CG’、‘BFGS’
									#‘Newton-CG’、‘L-BFGS-B’ 
									#‘TNC’、‘COBYLA’
									#‘SLSQP’、‘dogleg’ 
									#‘trust-ncg’ 

                       jac=None, #目标函数的雅可比矩阵(梯度向量)。
                                 #仅适用于CG, BFGS, Newton-CG, 
                                 #L-BFGS-B, TNC, SLSQP, dogleg,
                                 #trust-ncg。如果jac是一个布尔值,
                                 #且为True,则假定fun将随目标函数返回
                                 #梯度。如果为False,则用数值方法估计梯
                                 #度。Jac也可以是返回目标梯度的可调用对
                                 #象。在这种情况下,它必须接受与乐趣相同
                                 #的论点。
                       hess=None, 
                       hessp=None,#目标函数的Hessian(二阶导数矩阵)或
                                  #目标函数的Hessian乘以任意向量p。
                                  #仅适用于Newton-CG, dogleg,
                                  #trust-ncg。只需要给出一个hessp或
                                  #hess。如果提供了hess,则将忽略
                                  #hessp。如果不提供hess和hessp,则用
                                  #jac上的有限差分来近似Hessian积。
                                  #hessp必须计算Hessian乘以任意向量。
               
                       bounds=None, #变量的边界(仅适用于L-BFGS-B, 
                                    #TNC和SLSQP)。(min, max)
                                    #对x中的每个元素,定义该参数的
                                    #边界。当在min或max方向上没有边界
                                    #时,使用None表示其中之一。
                       constraints=(), #约束定义
                       				   #(仅适用于COBYLA和SLSQP)
                       tol=None, #终止的边界。
                       callback=None, 
                       options=None)

返回值: res : OptimizeResult
#以OptimizeResult对象表示的优化结果。重要的属性有:x是解决方案数组,
#success是一个布尔标志,指示优化器是否成功退出,以及描述终止原因的消息。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/844187
推荐阅读
相关标签
  

闽ICP备14008679号