Pomegranate: 質問:条件付き確率からのサンプリング

作成日 2016年02月28日  ·  18コメント  ·  ソース: jmschrei/pomegranate

こんにちは、
これが適切な場所かどうかはわかりませんが、そうでない場合は教えてください。
私の修士論文では、離散変数と連続変数(連続変数と離散変数の混合)の両方である可能性がある複数の確率変数の条件付き確率を推定したいと思います。 これは、この混合物と証拠変数の同時分布で密度推定を行うことにより、ザクロを使用して行うことができると思います。 結果は、分布の2つの混合の一部になりますが、閉じた形の分布ではありません。 したがって、条件付き分布からサンプリングするには、棄却サンプリング(または最適化されたMCMC法)に頼る必要があります。 これは正しいです?

最も参考になるコメント

@jmschrei :もちろんです! sample()メソッドは、ザクロモデルをPyMCに移行して、そこでサンプリングを実行できるようにするのに最適であるか、可能性があります。 :)

全てのコメント18件

残念ながら、ザクロは現在、連続分布を条件とする条件付き分布をサポートしていません。 それは私がすぐに追加したいものです。 しかし、その考えはもっともらしいように聞こえます。 この分野でより本格的なPyMCを検討するかもしれません。

可能であれば、提案よりも。 PyMCは、分布混合物、HMMなどもサポートします。ただし、それらを作成するためのファクトリメソッドはありません。 ザクロ(非常に明確なインターフェースを持つ)がPyMCの(最適化された)サンプリング方法と統合できれば素晴らしいと思います。 たぶん、ザクロモデルをPyMCモデルに変換することによって。

それは合理的な考えのようです。 ただし、それを設定する時間が必要な場合は、ザクロに実装する時間もあります。 私は実際にこれらの問題に取り組むために今日しばらく時間があります。 動作させたいサンプルコードスニペットを提供できれば、すぐに実装できるかどうかを確認できます。

私はまだザクロを使用していません。問題について最も完全なライブラリを検索している段階です。 しかし、条件付き分布では、すべてが揃っています。 私が持っているのは、最初の投稿で述べたとおりに実行する現在のコードですが、ガウス分布の混合(閉じた形式の派生が存在する)のみを使用しています。

編集:sklearnGMMで今どのように使用しているかのスニペットを表示します

weighted_fitは、重み付きデータを処理するsklearns fit()の拡張バージョンです。

gmm.weighted_fit(data、weight_data)

私のデータは3次元の連続ベクトル[X、Y、Z]です

z = 1.2

P(X = nan、X = nan | p = Z)

(con_mean、con_cov、con_weights)= Utility.cond_dist_gmm(np.array([np.nan、np.nan、z])、gmm.means_、gmm._get_covars()、gmm.weights_)

私が追加する必要があるものの説明的な疑似コード。基本的に、次のようなものがある場合:

a = NormalDistribution( 5, 2 )
b = ConditionalGaussianDistribution( w=[5], w0=2, sigma=2 )

これは、正規分布である親分布と、親の線形回帰を中心とした条件付き正規分布を指定します。 あなたにとって最も便利なものは何でも。

あなたが何を求めているのか正確にはわかりません。 GMMはザクロに実装されています(そしてsklearnよりも速いと思います)。 条件付きガウス混合モデルをお探しですか?

私が持っている条件付きGMM。
d = [c1、c2、d1、d2]のように、離散変数と連続変数の両方を持つデータが与えられた場合、別の言い方をします。
私はこれを行うことができるようにしたいと思います:

k成分混合モデル、連続データ[d1、d2]をモデル化するために、多変量はモデルベクトル[d1、d2]に対して2次元です。

gmm = MixtureDistribution(MultivariateGaussianDistribution1、MultivariateGaussianDistribution2、...、MultivariateGaussianDistributionk)

離散分布

cat1 = DiscreteDistribution([(0,0.1)、(1,0.3)、(2,0.6)])
cat2 = DiscreteDistribution([(0,0.6)、(1,0.4)])

新しいモデルは、連続データと離散データの両方の結合分布を定義します-> p(d)

これはまだ可能ではないと思いますが、ザクロでは

それが、私が意図したことを正確に明確にできなかった理由かもしれないと思います。私は混合分布混合と混合同時分布を使用しました...

数学的定式化については、ページ下部の「混合ケース」の同時分布を参照してください。

d_model = JointDistribution(gmm、cat1、cat2)

モデルパラメータをデータに適合させる

d_model.from_sample(data)

同時確率が(おおよそ)わかっているので、たとえば、d1 = 1およびd2 = 0の場合の[c1、c2]の同時確率を知りたいと思います。

cond_d = ConditionalDistr(d_model、[np.nan、np.nan、1,0])

申し訳ありませんが、私はまだあなたが何を意味するのか完全には理解していません。 連続親と離散親の両方を持つ条件付き分布を定義できるようにしたいということですか? 基本的に、離散変数と連続変数の両方を含むベイジアンネットワークですか?

はい、そうだと思います。 しかし、私はさらにいくつかの調査を行い、EMを支持するいかなる形式のサンプリング方法も避けます。 これが私のモデルの表現力を低下させたとしても。 したがって、条件付きガウス混合モデルを実装する場合(私自身の実装は適切に機能しません)、それよりも非常に高く評価されます。 私が使用した紙を提供することはできますが、おそらくあなたはあなたが必要とするすべてのリソースを持っています。

確かに、同じページにいることを確認するためだけに、この論文を見てみたいと思います。

私が見つけた2つのアプローチがあります:
私が試したもの:機械学習のためのガウス過程の付録A
または条件付きガウス混合モデルの第2章環境リスクマッピング

条件付き分布に向けて進歩しましたか?

私はまだこれほど深く何かに入る時間があまりありませんでした、将来の学生訪問日は今週です。 すぐにこの問題に戻ります。

これは完全に私のレーダーから落ちました、ごめんなさい! 私がすぐにこれに取り組んだ場合、それはあなたに役立つでしょうか、それともあなたはあなたの論文を完成させましたか?

問題ない。
そして、私に戻ってきてくれてありがとう、しかし私の論文は終わりました。
あなたの図書館で頑張ってください。

2016年9月1日には、午前4時21分で、ヤコブシュライバーの[email protected]書きました:

これは完全に私のレーダーから落ちました、ごめんなさい! 私がすぐにこれに取り組んだ場合、それはあなたに役立つでしょうか、それともあなたはあなたの論文を完成させましたか?


スレッドを作成したため、これを受け取っています。
このメールに直接返信するか、GitHub https://github.com/jmschrei/pomegranate/issues/86#issuecomment -243958007で表示するか、スレッドhttps://github.com/notifications/unsubscribe-auth/AG5qEFMbUPk0uoKA4JTxdt8CaxTfPX29ks5qlja_ga

親愛なる@jmschreiこのトピックに関するあなたのプロセスは何ですか? また、非常に興味があるでしょう。 ありがとう!

こんにちは@jaSunny。 何を実装したいのか正確に説明できますか?

@jmschrei :もちろんです! sample()メソッドは、ザクロモデルをPyMCに移行して、そこでサンプリングを実行できるようにするのに最適であるか、可能性があります。 :)

このページは役に立ちましたか?
0 / 5 - 0 評価