問題タブ [best-fit-curve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - データの「最もクリーンな」サブセット、つまり変動性が最も低いサブセットを見つける方法
いくつかのデータセットで傾向を見つけようとしています。傾向には、最適なラインを見つけることが含まれますが、手順が他のモデルとあまり変わらないと想像する場合 (単に時間がかかる可能性があります)。
考えられるシナリオは 3 つあります。
- すべてのデータが単一の傾向に適合し、変動性が低いすべての良好なデータ
- データのすべてまたはほとんどが非常に変動しやすく、データセット全体を破棄する必要があるすべての不良データ。
- 一部のデータは良好で、残りは破棄する必要がある、部分的に良好なデータ。
極端な変動性を持つデータの正味の割合が高すぎる場合は、セット全体を破棄する必要があります。これは、基本的にこのタイプのデータのみが存在し、不良データの割合がさまざまであることを意味します。
0% 不良 = ケース 1
100% 不良 = ケース 2変動性の低い連続したセクションのみを探しています。つまり、トレンドに合う個別のポイントがいくつかあるかどうかは気にしません。
私が探しているのは、データセットをサブセクション化し、特定のトレンドを検索するスマートな方法です。問題の性質上、全体的な傾向に最も適したセクションを探しているわけではありません。「よりクリーンな」データを含むサブセクションは、全体 (外れ値を含む) とはわずかに異なる傾向線の特性を持つことになることを理解しています。データのこの部分が実際の傾向を最もよく反映しているため、これはまさに私が望むものです.
私は C++ に堪能ですが、コードをオープン ソースおよびクロスプラットフォームにしようとしているので、ISO C++ 標準に固執しています。これは .NET がないことを意味しますが、.NET の例があれば、ISO C++ への変換も手伝っていただければ幸いです。また、JAVA、いくつかのアセンブリ、および Fortran の知識もあります。
データセット自体は巨大ではありませんが、約 1 億 5000 万あるため、総当たり攻撃は最善の方法ではない可能性があります。
前もって感謝します
私はいくつかのことを空中に残したことを理解していますので、明確にさせてください:
- 各データセットは異なる傾向を持つ可能性があり、おそらくそうなるでしょう。つまり、すべてのデータセットで同じ傾向を探しているわけではありません。
- プログラムのユーザーは、希望する適合度を定義します
- プログラム ユーザーは、トレンド フィッティングと見なされる前に、サブセットがどの程度連続していなければならないかを定義します。
- プログラムが拡張されて任意のタイプの適合 (単純な線形ではない) が可能になる場合、ユーザーはどのモデルを適合させるかを定義します。これは優先事項ではなく、上記のクエリが解決された場合、この拡張は確実に比較的些細なこと
- 外れ値は、実験の性質とデータ取得技術の結果として生じます。これらの領域は外れ値を与えることが知られているにもかかわらず、「悪い」セクションからのデータを収集する必要があります。これらの外れ値を破棄しても、データが何らかの傾向に合わせて操作されていることを意味するものではありません (統計の免責事項、へへ)。
python - ステップ関数のフィッティング
scipy.optimize.leastsq を使用してステップ関数を適合させようとしています。次の例を検討してください。
パラメータは、ステップの位置と両側のレベルです。奇妙なのは、scipy を実行すると、最初の無料のパラメーターが変化しないことです。
最初のパラメーターが 250 に設定され、2 番目のパラメーターが -10 に設定されたときに最適になる場合。
なぜこれが機能しないのか、どのように機能させるのかについて、誰かが洞察を持っていますか?
私が走れば
私は見つけます:
ここで、最初の数値は、leastsq が見つけたもので、2 番目の数値は、見つけるべき実際の最適関数の値です。
labview - LabView cos フィッティング
関数のパラメーターの1つを決定するために、多数のコサイン波に適合する必要があるプログラムに取り組んでいます。私が使用している方程式は y = y_0 + Acos((4*pi*L)/x + pi) です。ここで、L は最適な線から取得しようとしている値です。
データのセットごとに手動でこれを正しく行うことができることは知っていますが、このプロセスを自動化する最良の方法は何ですか? 私は現在、テキスト ファイルからデータを読み込んでおり、データと同様の振幅を持つパラメーター値の配列が得られるまで、初期パラメーターを変更してループを実行しています。最適なものを選択しようとする 2 つのエンド ピーク。それは、手作業でフィッティングしたときに得られる値よりも一貫して低い値を選択することです (ほぼ正確に 1 フェーズ オフ)。この方法を改善する方法、またはより効果的な別の方法はありますか?
編集:私のLabVIEWバージョンには、私が使用しているものであるcosフィッティングVIがあります。問題は、ループを使用して初期パラメータを変更してフィッティングを自動化しようとすると、プログラムに同じ最適なものを選択させる方法がわかりません人間が選ぶようなフィットライン。
r - 最適な非線形曲線の新しい値をプロットする
非線形関数に最適なものを作成しました。正しく機能しているようです。
私の観察のプロットは正しく出ています。プロットに最適な曲線を表示するのに問題があります。1000個の値を使用してxl独立変数を作成し、最適なものを使用して新しい値を定義したいと思います。「行」プロシージャを呼び出すと、次のエラーメッセージが表示されます。
xy.coords(x、y)のエラー:'x'と'y'の長さが異なりますpredict関数のみを実行しようとすると:
xlには1000個のコンポーネントがありますが、「a」には16個のコンポーネントしかないことがわかります。に同じ数の値を含めるべきではありませんか?
使用したデータ:
java - Javaでの3Dデータポイントのコレクションへのサーフェスのフィッティング
こんにちは、XYZ データ ポイントのクラウドがあります。これらのポイントに最適なサーフェスを推定して、後で XY ペアを入力し、この XY ペアがサーフェス上にある Z 値を取得できるようにしたいと考えています。
サーフェスを推定する既存の Java ライブラリはありますか?
そうでない場合、これを計算する方法を説明するものを読むことを誰かに勧めてもらえますか?
可能であれば、ポイントに重み付けできるようにしたいと考えています (一部のポイントは信頼性が低いため、仕上げ面への影響は少ないはずです)。
javascript - 2 つの曲線間の最適パス
私の目的は、この 2 つの回路曲線形状の間で滑らかで最適な線を見つけることです。この例のように、2 つの線の間の一連の点 (または曲線) を見つけることができるアルゴリズムはありますか?
私がこれまでに持っているアルゴリズムは内側の部分を取り、各点に最も近いものを見つけますが、これは機能しません(最初のコーナーを見てください)。
(赤は内側、緑は外側、青は私が見つけた最適化されたドットです)
これが私のjsfiddleです: http://jsfiddle.net/STLuG/
これはアルゴリズムです:
ありがとう
c# - Best Fit Straight Line の場合、予測のための最良の方法
2 次元座標系で指定されたポイント サンプルのセットに基づいて、次のポイントを予測する必要があります。
このような予測には、ベストフィット直線法を使用しています。
Best-Fit Straight Line 以外の方法があれば教えてください。
私のコードは以下の通りです: