問題タブ [emcee]
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 - emcee.EnsembleSampler.run_mcmc() 関数が、どのウォーカーの連続するステップでも emcee.EnsembleSampler.chain の値を変更しないのはなぜですか?
emcee ライブラリで emcee.EnsembleSampler 関数を実行して、行っている研究用のパラメータのマルコフ連鎖を作成しています。なんらかの理由で、run_mcmc 関数が実行されるときに、emcee.EnsembleSampler.chain オブジェクトで見つかったチェーンが、本質的にほぼガウスである必要があるときに、まったく変化しません。
一部のデータでこれを複数回実行しましたが、完全に正常に機能しますが、場合によっては、チェーンが反復されず、直線だけになる場合があります。
司会者コードの使用方法 (約 90% の時間で動作します):
__ln_prob 関数は次のように記述されます (その中で使用される関数もここで詳しく説明されています)。
前の関数:
チェーン値が振動することを期待していますが、一部のケースではそうではありません。後のコードからエラーがスローされないため、__ln_prior または __ln_prob から -np.inf 値が返されないようです。-np.inf が返された場合、コードは壊れるべきだと思いますか? たぶんこれが理由ですか?
問題を理解するためにコードがあまり必要ではないと思います。これが、明らかに理解していない比較的頻繁に発生する問題であることを願っています。
sample() 関数が受け取ったのと同じパラメーターのセットを返す理由について、ソース コードを調べてみましたが、これが見つからないようです。
ソース コードは次の場所にあります: https://github.com/dfm/emcee/blob/master/emcee/ensemble.py