正确使用scipy.optimize.fmin_bfgs

ACE*_*CEG 11 python regression scipy python-2.7

我正在玩Python中的逻辑回归.我已经实现了一个版本,其中通过梯度下降来完成成本函数的最小化,现在我想使用scipy的BFGS算法(scipy.optimize.fmin_bfgs).

我有一组数据(矩阵X中的特征,X的每一行中有一个样本,垂直向量y中有相应的标记).我试图找到参数Theta来最小化:

在此输入图像描述

我无法理解fmin_bfgs如何正常工作.据我所知,我必须传递一个最小化的函数和一组Thetas的初始值.

我做以下事情:

initial_values = numpy.zeros((len(X[0]), 1))
myargs = (X, y)
theta = scipy.optimize.fmin_bfgs(computeCost, x0=initial_values, args=myargs)
Run Code Online (Sandbox Code Playgroud)

其中computeCost如上图所示计算J(Thetas).但是我得到了一些与索引相关的错误,所以我认为我没有提供fmin_bfgs所期望的内容.

任何人都可以对此有所了解吗?

ACE*_*CEG 5

在浪费了数小时之后,又通过发布功能解决了...我正在定义computeCost(X,y,Thetas),但是由于Thetas是优化的目标参数,因此它应该是签名中的第一个参数。固定且有效!