python - 正确使用 scipy.optimize.fmin_bfgs

标签 python scipy python-2.7 regression

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

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

enter image description here

我无法理解 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 期望的内容。

任何人都可以阐明这一点吗?

最佳答案

在上面浪费了几个小时之后,通过发布的力量再次解决了......我正在定义 computeCost(X, y, Thetas),但是由于 Thetas 是优化的目标参数,它应该是签名中的第一个参数.已修复且有效!

关于python - 正确使用 scipy.optimize.fmin_bfgs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258094/

相关文章:

python - 如何设置 ttk.Entry 的文本?

python - 带有样本权重的 keras 自定义指标

python - 如何使用 scipy.spatial.Delaunay 在 delaunay 三角剖分中找到给定点的所有邻居?

python - 如何在Python3.5 虚拟环境中安装scipy | window 10?

Python 默认字典给出重复键

php - 多维数组自动子数组初始化功能名称?

Python 拦截来自浏览器的 Web 流量

python - 尝试使用 SmoothSphereBivariateSpline() 进行插值时出错 : "ValueError: Error code returned by bispev: 10"

python-2.7 - wxpython-如何从自定义wx对话框获取返回值

python - 使用 `python setup.py develop` 安装更多文件