2017-07-08 11 views
0

私はnumpyのpolyfitを使ってデータセットに最適なカーブを見つけました。しかし、numpyのの関数polyfitは、のfloat64の配列を返し、計算された係数が非常に大きい/小さい(すなわち、1E-200)であるため、それは乗算で遭遇だオーバーフローエラーを返しています:Numpy Float128 Polyfit

RuntimeWarning:乗算 スケール= NXで遭遇オーバーフロー.sqrt((lhs * lhs).sum(axis = 0))

最初の配列をfloat128にキャストしようとしましたが、動作していないようです。このような大きな係数を処理する方法はありますか?

+0

どの程度指定していますか? – hpaulj

+0

かなり大きい - 私は75に設定して、最適フィットカーブの振動を最小限に抑えるようにしました。私がデータセットの1つはガウス曲線に似ていますが、polyfitをdeg = 45に設定すると、エラーは消えますが、最適フィット曲線はかなり振動します。 – Jess

答えて

0

変数の対数バージョン(np.log10)を使用することができます。したがって、1e-200のようなものを扱う場合、-200、少ないメモリと効率があります。

+0

これは実際に渡す変数ではありません。問題を引き起こしているのはnp.polyfitが生成する最適なラインです。私の実際のデータはfloat64の範囲内にあります。エラーをトレースすると、それはpolyfitの呼び出しで生成されています – Jess

関連する問題