赞
踩
简单使用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)。
import numpy as np
from scipy.optimize import minimize
函数入参:
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是一个布尔标志,指示优化器是否成功退出,以及描述终止原因的消息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。