私は、入力と出力のサンプルに基づいて数値を出力する非常に基本的なPythonコードをいくつか記述しようとしています。例えばもしそうなら:私はそれを別のxの値を渡すとyの値の大まかな近似値を得ることができるようにカーブフィットからのPython推定値
x = [1, 2, 3, 4, 5]
y = [2, 5, 10, 17, 26]
z = np.interp(7, xp, yp)
print(z) ##expected 50, actual was 26
私は一緒にこれらの値をマップする最良のフィット関数を見つけるいくつかの方法を持っているしたいと思います。私はscipy.optimize.curve_fit
について読んでみましたが、私の知る限りでは、これは私が使用しなければならないものではありません。
私の値は変わるかもしれないので、関数が線形/周期/二次などでなければならないことには制限がありませんが、私の仮定ではほとんどの関数は線形でなければなりません。
私もnumpy.interp
を試しましたが、入力したx
が何であってもy
アレイの最後の値を取得しました。
編集: Clebの答えをいろいろと混ぜて、それをkennytmの元のアプローチと比較したところ、私の知見がここにあります。 ここで最も正確な手法は、赤い線に最も近い関数でなければなりません。緑色の線はkennytmのアプローチを表しています(二次回帰は私が試した最も正確なものでした)。黒い線はClebの手法(UnivariateSpline)を表しています。 UnivariateSplineは基礎となるモデルに関する事前の知識がないので、幾分より正確な関数の値に適応するのが少し良いです。
あなたが探しているコンセプトは[補間](https://en.wikipedia.org/wiki/Interpolation)です。 [scipy]で利用可能ないくつかのツールの説明については、例えば[補間に関するscipyチュートリアル(https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html)]を参照してください。 .interpolate'パッケージ](https://docs.scipy.org/doc/scipy/reference/interpolate.html)。 –
1次元データの線形補間では、[numpy.interp() '](https://docs.scipy.org/doc/numpy/reference/generated/numpy.interp.html)が必要なものだけかもしれません。 –
@warrenweckesser私はそれがあるとは思わない、私はそれを試した。最後の編集を確認してください。 – ninesalt