0

使用fmin_bfgs(在 SciPy 中)优化非正则化后勤成本函数时出现以下错误:

遇到被零除:rhok 假设大

C:\Python27\lib\site-packages\scipy\optimize\optimize.py:828:RuntimeWarning:在 double_scalars 中遇到除以零 rhok = 1.0 / (numpy.dot(yk, sk))

警告:由于精度损失,不一定能达到预期的误差。当前函数值:0.693147 迭代次数:1 函数评估:27

算法 (fmin_bfgs) 在一次迭代后停止。我可能做错了什么?这是python代码:https ://gist.github.com/4223554

这是数据集:https ://gist.github.com/4223566

4

2 回答 2

1

您的目标和梯度函数有错误:

  • initial_theta而不是theta,因此它们返回常量值。这样的函数没有明确定义的最小值,因此优化失败。
  • 梯度函数假设theta是二维数组

修复它们,它可以工作。

于 2012-12-06T14:48:44.263 回答
-1

伙计们,

与“pv”提到的不同,该问题与 initial_theta 无关。它与训练数据集有关。我已经解决了这个问题,这是工作代码:https ://github.com/dormantroot/machine-learning-experiment/blob/master/LogisticRegressionExamples/LogisticRegression.py

于 2012-12-28T19:29:59.807 回答