問題タブ [pymc3]

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.

0 投票する
1 に答える
2284 参照

python - PyMC3 のチュートリアルに従おうとすると、「'Model' object has no attribute TransformedVar」になります。

PYMC3 https://pymc-devs.github.io/pymc3/getting_started/のチュートリアルに従おうとしていますが、コードの次のセクションに到達するとエラーが発生します...

最初のエラーは「cannot import name logtransform」です。2 番目のエラー (ロードしない場合logtransform) は、「'Model' オブジェクトに属性がありませんTransformedVar」です。

これを Windows 7 の IPython Notebook で実行しています。PyMC3 をアンインストールして再インストールしようとしましたが、役に立ちませんでした。

0 投票する
1 に答える
822 参照

python - pymc3 の動的システムのパラメーター推定用に pymc スクリプトを書き直す

ホジキン ハクスリー ニューロン モデルの未知のパラメーターと状態を推定するために pymc3 を使用したいと考えています。私のpymcのコードはhttp://healthyalgorithms.com/2010/10/19/mcmc-in-python-how-to-stick-a-statistical-model-on-a-system-dynamics-model-に基づいていますin-pymc/であり、かなりうまく実行されます。

pymc3 では、Lambda トリックを使用できません。これが私の試みの1つです:

これらのフォーラムで私が見た他の唯一の例は、次のとおりです: PyMC3 の単純な動的モデル

ただし、提案された解決策も機能しないため、それは私の質問への回答にはなりません。私のソリューションも機能しません。エラーは発生しませんが、スクリプトを実行すると、サンプリングが開始されないように見えます。いずれにせよ、すべての決定論的分布を定義するために python for ループを実行する必要があるため、私のソリューションは非効率的です。pymc3 が、純粋な python リストにすべてを入れた方法を認識するかどうかはわかりません。私の関数 HH() が numpy 配列またはある種の theano オブジェクトを返すことができれば、おそらくそれが役立つでしょう。しかし、私はそれを実装する方法について迷っています。

0 投票する
3 に答える
1571 参照

mcmc - 切り捨てられた通常の事前確率を作成する方法: pymc2 から pymc3 への変換

pymc3では、切り捨てられたノーマルプライアをどのように設定しますか? pymc2 では非常に単純ですが (以下)、pymc3 では切り詰められた正規分布が利用できなくなっているようです。

Pymc2:

Pymc3: ?

0 投票する
0 に答える
304 参照

python - 負の二項モデルは、サンプリングの開始位置を見つけることができません

観測データが離散的である場合、PYMC3 モデルの実行に問題があります。奇妙なことに、観測データに値ゼロ (0.) が含まれている場合、モデルは実行されます。

使用を提案する他の投稿を読みました start = pm.find_MAP(fmin=scipy.optimize.fmin_powell)が、問題は解決しません。

iPython ノートブックを見る

コードとエラーは以下です。

私が得るエラーは次のとおりです。

0 投票する
2 に答える
8762 参照

python - pymc3 で推測されたパラメーターから予測を生成する

誰かが助けてくれるかどうか疑問に思っている一般的な問題に遭遇しました。私はよく pymc3 を 2 つのモードで使用したいと思います: トレーニング (つまり、実際にパラメーターの推論を実行する) と評価 (つまり、推論されたパラメーターを使用して予測を生成する) です。

一般に、ポイントごとの推定だけでなく、予測よりも事後が必要です(それはベイジアンフレームワークの利点の一部ですよね?)。トレーニング データが固定されている場合、これは通常、類似した形式のシミュレートされた変数を観測された変数に追加することによって達成されます。例えば、

しかし、データが変更された場合はどうなりますか? 新しいデータに基づいて予測を生成したいとしますが、推論を最初から実行する必要はありません。理想的には、theano 計算グラフを介して新しいデータを単純に実行する、predict_posterior(X1_new, X2_new, 'Y_sim', trace=trace)またはのような関数が必要です。predict_point(X1_new, X2_new, 'Y_sim', vals=trace[-1])

私の質問の一部は、pymc3 が theano 計算グラフを実装する方法に関連していると思います。関数model.Y_sim.evalは私が望むものと似ているように見えますがY_sim、入力として必要であり、与えられたものを返すだけのようです。

このプロセスは非常に一般的だと思いますが、それを行う方法が見つからないようです。どんな助けでも大歓迎です。(また、pymc2 でこれを行うためのハックがあることにも注意してください。pymc3 では、theano のためにより困難です。)

0 投票する
1 に答える
476 参照

python-3.4 - pymc3/theano を使用したベイズ寿命推定

次のモデルを推定しようとしています

ここに画像の説明を入力

ここで、一様事前確率を提供ここに画像の説明を入力 し、尤度をコード化しここに画像の説明を入力ます。後者はこの論文からのもので、次のようになります。

ここに画像の説明を入力

theano/pymc3 の実装では、first_termとの rhs の第 1 項と第 2 項を計算していsecond_termます。最後logpに、サンプル全体を合計します。

Theano は、自分自身でいくつかの出力を生成していますが、それを pymc3 モデルに統合すると、次のエラーが表示されます。

TypeError: ('Bad input argument to theano function with name "<ipython-input-90-a5304bf41c50>:27" at index 0(0-based)', 'Expected an array-like object, but found a Variable: maybe you are trying to call a function on a (possibly shared) variable instead of a numeric array?')

問題は、pymc3 変数を theano に供給する方法だと思います。

私の最初の推測は で変更するlogpことreturn(get_ll(X, p.eval(), theta.eval()))でしたが、theanop_intervalはグラフに謎の欠落があると文句を言いました。どんな手掛かり?

0 投票する
1 に答える
1476 参照

python - pymc3: 決定論的スイッチポイント関数を使用した災害の例

theano の switch 関数を使用する代わりに、switchpoint の決定論的関数を使用して石炭採掘の例を再現しようとしています。コード:

しかし、このコードはエラーを引き起こします:

-------------------------------------------------- ------------------------- KeyError トレースバック (最新の呼び出しが最後) c:\program files\git\theano\theano\tensor\type.py dtype_specs(self) で 266 'complex64': (complex, 'theano_complex64', 'NPY_COMPLEX64') --> 267 }[self.dtype] 268 KeyError を除く:

KeyError:「オブジェクト」

上記の例外の処理中に、別の例外が発生しました:

TypeError トレースバック (最新の呼び出しが最後) c:\program files\git\theano\theano\tensor\basic.py in constant_or_value(x, rtype, name, ndim, dtype) 407 rval = rtype( --> 408 TensorType(dtype) =x_.dtype、ブロードキャスト可能=bcastable)、409 x_.copy()、

c:\program files\git\theano\theano\tensor\type.py in init (self, dtype, broadcastable, name, sparse_grad) 49 self.broadcastable = tuple(bool(b) for b in broadcastable) ---> 50 self.dtype_specs() # そこでエラーチェックを行う 51 self.name = name

c:\program files\git\theano\theano\tensor\type.py in dtype_specs(self) 269 raise TypeError("Unsupported dtype for %s: %s" --> 270 % (self. class . name , self. dtype)) 271

TypeError: TensorType のサポートされていない dtype: object

上記の例外の処理中に、別の例外が発生しました:

TypeError トレースバック (最新の呼び出しが最後) c:\program files\git\theano\theano\tensor\basic.py in as_tensor_variable(x, name, ndim) 201 try: --> 202 return constant(x, name=name, ndim=ndim) TypeError 以外の 203:

c:\program files\git\theano\theano\tensor\basic.py in constant(x, name, ndim, dtype) 421 ret = constant_or_value(x, rtype=TensorConstant, name=name, ndim=ndim, --> 422 dtype=dtype) 423

c:\program files\git\theano\theano\tensor\basic.py in constant_or_value(x, rtype, name, ndim, dtype) 416 except Exception: --> 417 raise TypeError("Could not convert %s to TensorType" % x、タイプ (x)) 418

TypeError: ('FromFunctionOp{rate1} を TensorType に変換できませんでした', )

上記の例外の処理中に、別の例外が発生しました:

AsTensorError トレースバック (最近の呼び出しが最後) in () 14 mu2 = pymc3.Exponential('mu2',lam=1.) 15 #rate1 = pymc3.switch(switchpoint >= np.arange(len(data)), mu1, mu2) ---> 16 災害 = pymc3.Poisson('災害', mu=rate1, 観測 = データ)

C:\Users\User\Anaconda3\lib\site-packages\pymc3\distributions\distribution.py in new (cls, name, *args, **kwargs) 19 if isinstance(name, str): 20 data = kwargs. pop('observed', None) ---> 21 dist = cls.dist(*args, **kwargs) 22 return model.Var(name, dist, data) 23 elif name is None:

C:\Users\User\Anaconda3\lib\site-packages\pymc3\distributions\distribution.py in dist(cls, *args, **kwargs) 32 def dist(cls, *args, **kwargs): 33 dist = オブジェクト。new (cls) ---> 34 dist. init (*args, **kwargs) 35 return dist 36

C:\Users\User\Anaconda3\lib\site-packages\pymc3\distributions\discrete.py in init (self、mu、*args、**kwargs) 185 super(Poisson、self)。init (*args, **kwargs) 186 self.mu = mu --> 187 self.mode = floor(mu).astype('int32') 188 189 def random(self, point=None, size=None, repeat =なし):

c:\program files\git\theano\theano\gof\op.py in call (self, *inputs, **kwargs) 598 """ 599 return_list = kwargs.pop('return_list', False) --> 600 node = self.make_node(*inputs, **kwargs) 601 602 if config.compute_test_value != 'off':

c:\program files\git\theano\theano\tensor\elemwise.py in make_node(self, *inputs) 540 DimShuffle を使用します。541 """ --> 542 入力 = リスト (マップ (as_tensor_variable, 入力)) 543 影 = self.scalar_op.make_node( 544 *[get_scalar_type(dtype=i.type.dtype).make_variable()

c:\program files\git\theano\theano\tensor\basic.py in as_tensor_variable(x, name, ndim) 206 例外: 207 str_x = repr(x) --> 208 raise AsTensorError("Cannot convert %s to TensorType" % str_x, type(x)) 209 210 # _as_tensor_variable が

AsTensorError: ('FromFunctionOp{rate1} を TensorType に変換できません', )

これをどのように処理しますか?

2 番目のこと - 次のように pymc3.switch 関数を使用している場合:

次に、サンプリングを試みます。

エラーが発生します:

単純なアナリストとして、統計問題を処理できるようになるためには、theano に関するすべてのことを学ぶ必要がありますか? グラデーション機能を備えた新しい mcmc サンプラーは、pymc2 から pymc3 に切り替える動機の 1 つにすぎませんか?