問題タブ [model-fitting]
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.
python - Pythonで簡単な「モデルフィッティング」を行うには?
3 つのデータ セットがあるとしますx, y, z
。
単純なモデルに適合させたい: A*x + B*y + C = z
(A、B、C は定数です。)
Pythonでそれを行うにはどうすればよいですか?
見つかりましscipy.optimize.curve_fit
た。curve_fit(f, xdata, ydata[, p0, sigma])
ただし、に適合する1 つの変数のみを取ることができるようf(x) = y
です。私が必要なのはf(x, y)=z
.
Mathematica ではNonLinearModelFit
、仕事をすることができます。私が見逃した同様のモジュールが Python にあるかどうか疑問に思っています。
python - sklearn で複数の部分適合推定器を組み合わせることは可能ですか?
大量のデータがあり、データを分割し、複数のスレッドまたは複数のマシンで実行されている複数の推定器を適合させることにより、推定器の適合を並列化したいと考えています。
一部の推定器は、コア外学習用の partial_fit API を提供します (例:PassiveAggressiveClassifier
ここ)
複数の推定量を部分的に適合させてから、個々の適合を単一の推定量に結合することは可能ですか?
python - scipy統計で関数をフィッティングするためのデータセットを作成するには?
ライブラリを使用して、いくつかのデータをパレート分布scipy.stats
に適合させたいと考えています。問題が数値的なものであるかどうかはわかりませんので、安全のために; 独立変数 (「分」) の従属変数 (「プッシュ」と呼びましょう) の値を数千分で測定し、その後は 10 分ごとに測定しました (データクリーニング中に削除されたいくつかのポイントを除いて) )。
例えば
2780.0 362.0
2800.0 376.0
2810.0 393.0 ...
私が見つけることができる最高の情報は、次のようなものです
この場合、このデータをどのようにフォーマットするかわかりません。以下を試しましたが、すべてエラーになります。
エラーは通常
いくつかのガイダンスをいただければ幸いです。ありがとうございます。
r - R で nls.lm を使用したモデル フィッティング、「エラー: 未使用の引数」
minpack.lm で nls.lm 関数を使用して、非線形モデルを精神物理学実験のデータに適合させようとしています。
私は周りを検索しましたが、パッケージに関する多くの情報を見つけることができないため、基本的に nls.lm ヘルプ ページにある例の形式をコピーしました。残念ながら、私のスクリプトはまだ実行に失敗しており、R は次のエラーをスローしています。
スクリプトは、モデルを当てはめたいデータが無関係であると考えているようですが、これは間違いです。
モデルに適合し、予備パラメーター (w) の値が 0.5403 になることを期待しています。
どんな助けでも大歓迎です。私は Matlab から R に移行しているので、コードがお粗末に見える場合は申し訳ありません。
これがスクリプトです。
matlab - gmdistribution.fit ビン サイズの変更
私は現在、ガウス混合モデルを使用して、matlab にあるデータに適合させています。gmdistribution.fit 関数を使用していますが、フィットに関して質問があります。
次のコードは、PDF の生成に使用されます。
この例は、私の最悪のデータ セットの 1 つに当てはまります。
つまり、私の 3 次 GMM には標準偏差 (SD) が大きい 2 つのモードがありますが、3 次モードはピークが高く、SD が小さいです。
ECDFhist 関数でビンのサイズを変更できるのと同じように、gmdist.fit(options) のオプションを変更する方法など、ビンの幅を増やす (ビンの数を減らす) 方法はありますか?
どんな助けでも大歓迎です!!
どうもありがとう、M
r - R を使用して、特定の方程式を使用して曲線をデータセットに適合させる
R を使用しています。特定の方程式を使用して、データ セットの 1 つに曲線を当てはめたいと思います (添付)。
方程式は次のとおりです:y~yo+a*(1-b^x)
ここで:
y = Gossypol
(データ セットから)
x = Damage_cm
(データ セットから)
他の 3 つのパラメーターは不明です:
yo = Intercept
、a = asymptote
およびb = slope
パッケージを使用する必要があると思いますnls2
。これまでのところ、次のコードを書きました。
これにより、次のエラーメッセージが表示されます。
nlsModel(formula, mf, start, wts) のエラー: 初期パラメーター推定値での特異勾配行列
最後に、方程式を使用して曲線をプロットしたいと思います(SE間隔で、通常はggplot2を使用します)
さらに、R2とp値が知りたいです。yo
パラメータにも興味がありますa
。b
私はこれまでこれを行ったことがありません。誰かが私を助けたり、Rでこれを行う方法のヒントを教えてくれたりすると、非常に感謝しますか? 非線形アプローチを使用する必要があると思います(glm(...))
どうもありがとう、マイク
python - Python でのパラメトリック カーブのフィッティング
フォームの実験データとフォーム(X,Y)
の理論モデルがあり、(x(t;*params),y(t;*params))
はt
物理的 (ただし観測不可能) 変数であり、*params
決定したいパラメーターです。は連続変数であり、モデル内のとと の間に と の間t
に 1:1 の関係があります。x
t
y
t
完璧な世界では、(パラメーターの実際の値) の値を知ってT
いて、非常に基本的な最小二乗法を実行して の値を見つけることができます*params
。( 31243002や31464345のように、プロット内のとの値を「接続」しようとしているわけではないことに注意してください。)データは複数のサイクルにわたって収集されるため、実際のデータでは潜在値が単調であることを保証できません。x
y
T
私はカーブ フィッティングを手動で行った経験があまりなく、基本的な scipy 関数に簡単にアクセスできない非常に粗雑な方法を使用する必要があります。私の基本的なアプローチは次のとおりです。
- の値を選択
*params
してモデルに適用する - 値の配列を取り、
t
それをモデルに入れて、次の配列を作成します。model(*params) = (x(*params),y(*params))
X
(データ値)を補間しmodel
て取得しますY_predicted
Y
との間の最小二乗 (またはその他の) 比較を実行します。Y_predicted
- 新しいセットのためにもう一度やり直してください
*params
- 最終的に、最適な値を選択します
*params
このアプローチにはいくつかの明らかな問題があります。
1) 私は、「ソリューション空間ですべてを試す」以外の非常に優れた「やり直す」、おそらく「粗いグリッドですべてを試す」、「少しの間すべてをもう一度試す」を開発するためのコーディングの経験が十分ではありません。粗いグリッドのホットスポットにあるより細かいグリッド。」MCMC法をやってみましたが、主に問題2が原因で、最適な値が見つかりませんでした
2) ステップ 2 ~ 4 は、それ自体が非常に非効率的です。
私は次のようなことを試しました(疑似コードに似ています。実際の機能は構成されています)。A、B でブロードキャストを使用することについては、多くの小さな問題がありますが、それらは、すべてのステップで補間する必要があるという問題ほど重要ではありません。
私が知っている人は、ある種の期待値最大化アルゴリズムを使用することを推奨していますが、ゼロからコードを作成するのに十分な知識はありません。問題全体をカバーする素晴らしい scipy (またはオープンソース) アルゴリズムが見つからないことを本当に望んでいますが、現時点では期待できません。