Scipy fmin_bfgs错误:遇到零除:rhok假设大

时间:2012-12-06 10:38:01

标签: python machine-learning scipy

使用 fmin_bfgs (在SciPy中)优化未经规范的后勤成本函数时出现以下错误:

  

遇到零除法:rhok假设大

     

C:\ Python27 \ lib中\站点包\ SciPy的\优化\ optimize.py:828:   运行时警告:在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

2 个答案:

答案 0 :(得分:0)

您的目标和渐变函数存在错误:

  • initial_theta代替theta,因此它们会返回常量值。这样的函数具有 no 明确定义的最小值,因此优化失败。
  • 渐变函数假设theta是2D数组

修复它们并且有效。

答案 1 :(得分:-1)

人,

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