我正在玩 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)
其中 computeCost 计算 J(Thetas),如上图所示。但是我得到了一些与索引相关的错误,所以我认为我没有提供 fmin_bfgs 期望的内容。
任何人都可以对此有所了解吗?