1

単調に増加する整数のシーケンスがあります。例えば

seq=[(0, 0), (1, 5), (10, 20), (15, 24)]

そして、シーケンス内の最大の引数より大きい整数値(a > seq[-1][0])。与えられた値に対応する値を見積もりたい。シーケンスはほぼ直線的に増加し、前の値は後の値ほど重要ではありません。それでも、間違いが発生する可能性が非常に高く、曲線によって角度が変わる可能性があるため、最後の2つのポイントを取得して新しい値を計算することはできません。

誰かがPythonでこの種のタスクの簡単な解決策を提案できますか?

4

2 に答える 2

3

多くの問題があります。外挿は、最初は厄介なことです。線形外挿を想定していますか?多項式モデル(線形を超えて)は、一般的にひどく不十分に外挿します。それとも、線に漸近するある種の外挿を想定する必要がありますか?重要なのは、何を想定するか、そしてモデリングプロセスにどのような情報をもたらすことができるかです。

線形外挿を想定できる場合は、エンドポイントから離れるにつれて重みが減少する直線モデルを使用して、重み付き最小二乗近似を行うことができます。(実際、どのモデルでポーズをとっても、加重最小二乗推定は論理的であり、加重は位置の関数であるように見えます。)

したがって、次のような非線形モデルをポーズすることを選択したとします。

y = a + bx + c*exp(-d*x)

このモデルは、xが大きくなるにつれて、傾きbの直線に漸近的に近づきます。あなたはまだあなたが興味を持っている終わりからそれらのポイントを割り引く加重モデルを使うかもしれません。

繰り返しますが、長距離の外挿は試みるのが難しいことです。マーク・トウェインの言葉を覚えておいてください...

「176年の間に、ミシシッピ川下流域は242マイル短縮されました。これは、1年に1マイルと3分の1を超える平均的な些細なことです。したがって、盲目でも馬鹿げていない穏やかな人なら誰でも、ちょうど百万年前の来年11月の旧魚卵石シルル紀に、ミシシッピ川下流域が100万マイル以上の長さであり、釣り竿のようなメキシコ湾。そして同じように、今から742年後、ミシシッピ川下流はわずか1マイルと4分の3の長さになり、カイロ[イリノイ]とニューオーリンズは一緒に通りに合流し、大騒ぎすることを誰もが知ることができます。単一の市長と市会議員の相互委員会の下で快適に沿って。科学には魅力的なものがあります。そのような些細な事実の投資から、そのような大規模な推測の見返りを得ることができます。」「ミシシッピの生涯」、マーク・トウェイン、1884年

于 2012-05-27T01:27:31.087 に答える
0

シーケンスにノイズがあまりない場合は、最新のポイントと現在の1/3のポイントを使用し、そこからラインを推定します。それ以外の場合は、シーケンスの後半に最小二乗法を当てはめるなど、より複雑なことを行います。

Googleで検索すると、後者を実行するためのコードサンプルがいくつかあり、いくつかのモジュールが役立つ場合があります。(私はPythonプログラマーではないので、最高のものに意味のある推奨を与えることはできません。)

于 2012-05-26T18:45:13.933 に答える