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) は、1 回の反復後に停止します。私は何が間違っているのでしょうか?Python コードは次のとおりです: https://gist.github.com/4223554

データセットは次のとおりです: https://gist.github.com/4223566

4

2 に答える 2

1

目的関数と勾配関数にバグがあります:

  • initial_thetaの代わりにtheta、定数値を返します。このような関数には明確に定義された最小値がないため、最適化は失敗します。
  • 勾配関数thetaは 2D 配列であると仮定します

それらを修正すると動作します。

于 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 に答える