6

アルゴリズムの問​​題があります。stackoverflow が投稿するのに適切な場所かどうかはわかりませんが、matlab を使用していて、これを使用したいので、そこに投稿します。私の問題は次のとおりです。私は一連のデータを持っていますが、このセットの最後でポイントが完全に線形でなければならないという事実を除いて、それについてあまり知りません。線形分布していない部分を使用せずに、線形分布しているこれらの点を線形近似したいと考えています。

(画像は常に理解するのに適しています):ここに画像の説明を入力

ご覧のとおり、青いデータがあります。これは線形ではありませんが、最後に線形部分 (赤い部分) があります。私が望むのは、データ曲線の動作がいつ線形性を終了するかを知ることができるアルゴリズムを見つけることです。

私が明確かどうかわかりませんか?

右側のいくつかの点を取り、それらのいくつかの点を線形に適合させてみました。次に、いくつかの点をいくつか追加し、それらが線形適合の「十分に近い」かどうかを確認します。次に、追加されたポイントなどを使用してもう一度線形フィットを行いますが、「最初の」ポイントには多くのノイズがあるため、これは最善の解決策ではないと思います (ここでは画像に表示されていません)...

アイデア、提案、リンクはありますか?

ありがとうございました !

4

4 に答える 4

1

データセットを x 位置でスニペットし、直線性のためにカットオフを設定します。

  • 片端からスタート
  • グラフの次の定義済み部分のピアソン相関係数を確認します
  • 特定のしきい値を超える場合は、x の含まれる部分を範囲に追加し、それ以外の場合はそこで停止します

あるいは、多くの多項式フィッティングの中で線形が最適であることを確認することもできます。そのために私は:

  • n がかなり小さい (おそらく 3) オーダー 1-n のいくつかの一般的な関数を定義します。
  • 線形テスト セットにデータ ポイントを追加する
  • n 関数の最小二乗値を比較する
  • 線形の最小二乗値が最小である場合、または n 関数の最小値からある程度の距離内にある場合は、引き続きポイントを追加します。それ以外の場合は、停止して、関数が最後の追加の前に線形であったと言います。

これらは少なくとも非常に簡単な方法であり、私のオッカムのカミソリの考え方では、複雑さも最も低くなります (どちらの場合も n*curve-fit の複雑さですが、2 番目の方が定数が大きくなります)。そこには複雑さの低いアルゴリズムがあります。

于 2013-07-11T14:28:01.150 に答える