草庐IT

python - Scipy 最小化 fmin - 语法问题

我有一个函数,它接受多个参数(一个数组和两个float)并返回一个标量(float)。现在我想通过改变两个参数来最小化这个函数:两个float。该数组在函数内部“解包”,然后使用其内容(数组和float)。这如何使用SciPy的fmin函数完成?我很难为此找到正确的语法..函数是这样的:deffunc(x,y,data)data1=data[0]data2=data[...]......result=...x...y...data1...data2...#resultisascalar(float)returnresult在这种情况下,scipy.optimize.fmin应该是什么样

python - 正确使用 fmin_l_bfgs_b 来拟合模型参数

我有一些实验数据(对于y、x、t_exp、m_exp),并且想使用constrainedmultivariateBFGSmethod为这些数据找到“最佳”模型参数(A、B、C、D、E).参数E必须大于0,其他无限制。deffunc(x,A,B,C,D,E,*args):returnA*(x**E)*numpy.cos(t_exp)*(1-numpy.exp((-2*B*x)/numpy.cos(t_exp)))+numpy.exp((-2*B*x)/numpy.cos(t_exp))*C+(D*m_exp)initial_values=numpy.array([-10,2,-20,0.

python - 如何返回成本,grad 作为 scipy 的 fmin_cg 函数的元组

我怎样才能让scipy的fmin_cg使用一个返回cost和gradient作为元组的函数?使用f成本和fprime梯度的问题是,我可能必须执行两次操作(非常昂贵),通过该操作grad和cost被计算。此外,在它们之间共享变量可能会很麻烦。然而,在Matlab中,fmin_cg使用一个函数,该函数将成本和梯度作为元组返回。我不明白为什么scipy的fmin_cg不能提供这样的便利。提前致谢... 最佳答案 您可以使用scipy.optimize.minimize使用jac=True。如果出于某种原因这不是一个选项,那么您可以查看ho

python - scipy.optimize.fmin_slsqp 的使用

我正在尝试使用scipy.optimize包来查找成本函数的最大值。在这种特殊情况下:我有一张价格表,每天都在变化。为了方便起见,假设一天有8个小时,每小时的价格如下:price_list=np.array([1,2,6,8,8,5,2,1])在这个简化的例子中,我想从price_list中选择4个最高的价格。由于各种原因,我不想简单地排序和选择最好的四个价格,而是使用一些优化算法。我有几个限制条件,因此我决定使用scipy中的最小二乘算法,scipy.optimize.fmin_slsqp。我首先为我选择的时间创建一个时间表:schedule_list=np.zeros(len(pr

python - 正确使用 scipy.optimize.fmin_bfgs

我正在玩弄Python中的逻辑回归。我已经实现了一个版本,其中成本函数的最小化是通过梯度下降完成的,现在我想使用scipy(scipy.optimize.fmin_bfgs)的BFGS算法。我有一组数据(矩阵X中的特征,X的每一行中有一个样本,垂直向量y中有相应的标签)。我试图找到要最小化的参数Theta:我无法理解fmin_bfgs的确切工作原理。据我所知,我必须传递一个要最小化的函数和一组Thetas的初始值。我做了以下事情:initial_values=numpy.zeros((len(X[0]),1))myargs=(X,y)theta=scipy.optimize.fmin_

python - scipy 优化 fmin ValueError : setting an array element with a sequence

当使用scipy.optimize的fmin时,我收到一个我不明白的错误:ValueError:settinganarrayelementwithasequence.这里有一个简单的平方误差示例来演示:importnumpyasnpfromscipy.optimizeimportfmindefcost_function(theta,X,y):m=X.shape[0]error=X.dot(theta)-yJ=1/(2*m)*error.T.dot(error)returnJX=np.array([[1.,1.],[1.,2.],[1.,3.],[1.,4.]])y=np.array([