問題タブ [bayesian-networks]

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 投票する
2 に答える
1615 参照

matlab - ベイジアン ネットワークの簡単な例/アプリケーション

読んでくれてありがとう。

Matlab の BNT ツールボックスを使用してベイジアン ネットワークを実装したいのですが、BN を扱うのは初めてなので、「簡単な」例が見つかりません。

いくつかの可能なアプリケーションを提案できますか (ノード数は多くありません) お願いします ^^ ?

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

r - 取引との因果関係(ベイズネットワーク)

A、B、C、D、E、F、G、H などの複数のバイナリ ベクトルを使用しています。それらの間の分類を見つけたいです。私は次のことを試しました:

すべてが連続変数であり、mu で NULL であるという理由だけで、このエラーが発生します。

ネットワークを作成した後、分類するにはどうすればよいですか?

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

python - scikit-learn:半教師付きナイーブベイズの実装は利用可能ですか?

Scikit-learn の半教師あり Naive Bayes (Bernoulli) の実装を使用したいと思います。github のこのリンクによると、1 年前にいくつかの作業と議論がありました (クラス SemisupervisedNB)。一方で別の実装(関数 fit_semi?)もあるみたいで、その後別のユーザーが磨いたらしい。ただし、現在の安定版リリースではそれらのどれも利用できません。

Semisupervised Naive Bayes を構築するために、現在のリリースの scikit-learn でこれら 2 つの実装のいずれかを使用する方法の例を誰かに教えてもらえますか? ありがとう。

PS: クラス SklearnClassifier で NLTK の scikit-learn 分類子を使用しています

編集

プロジェクトで SemiSupervisedNB のコードを試し、ラベルのないクラスのラベルを -1 から 2 に変更しました (NLTK の SKlearnClassifier を使用しており、ラベルのないクラスはラベル 2 を取得します)。ただし、切片配列に inf 値が含まれているため、d (モデルの現在のパラメーターと以前のパラメーターの差) を計算するときに、ValueError: array must not contain infs または NaNs を取得しています...これを解決する方法について何か考えはありますか?

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

machine-learning - Scikits NB と NLTK NB のパフォーマンス

NLTK と Scikits の両方で Naive Bayes の 2 つの実装のパフォーマンスを比較しました (Bernoulli バージョン、各クラスにまったく同じ量のトレーニング例を使用しているため、クラスの事前確率は問題ではありません)。・クラスの問題。X 軸はトレーニング データセットのサイズ (実際の値は忘れてください)、Y は精度です。これが私が得たものです。

このパフォーマンスの違いの理由は何ですか?

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

artificial-intelligence - 既存の条件付き確率テーブルから同時確率テーブルを作成するにはどうすればよいですか?(CPT)

私は次のテーブルを持っていますが、以下の依存関係があります:

ここに画像の説明を入力してください

そして、の同時確率テーブルを作成したいと思いますP(M,P,W,B)。これは次のようになります(もちろん、以下のテーブルは私に与えられていないと想定できます。これは、この質問の回答から取得されます):

ここに画像の説明を入力してください

誰かがの同時確率テーブルを作成する方法を説明できますかP(M,P,W,B)

感謝します

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

probability - 弦 MRF と同等の非弦 MRF を作成できますか?

ここで、同等性によって、つまり、両方のケースで分布(テーブル全体)が等しくなりますか???

0 投票する
5 に答える
5065 参照

python - Python での拡張ベイズ分類器の学習と使用

フォレスト(またはツリー)拡張ベイズ分類器(元の紹介学習)を使用しようとしていますpython(できればpython 3ですが、python 2も受け入れられます)、最初にそれを学習し(構造とパラメーター学習の両方)、次にそれを使用します離散分類の場合、データが欠落している特徴の確率を取得します。(これが、離散分類だけでなく、優れた単純な分類器でさえ、私にとってあまり役に立たない理由です。)

私のデータが入ってくる方法として、不完全なデータからの増分学習を使用したいと思っていますが、文献でこれらの両方を行うものさえ見つけていないので、構造とパラメーターの学習と推論を行うものは何でも良いです答え。

大まかにこの方向に進んでいる、非常に個別で保守されていない python パッケージがいくつかあるようですが、最近のものは見たことがありません (たとえば、pandasこれらの計算に を使用するのは合理的だと思いますが、OpenBayesほとんど使用していませんnumpy) 、および拡張分類子は、私が見たものにはまったくないようです。

では、フォレスト拡張ベイズ分類器を実装する手間を省くには、どこを見ればよいのでしょうか? Python クラスにパールのメッセージ パッシング アルゴリズムの適切な実装はありますか、それとも拡張ベイズ分類器には不適切でしょうか? Pythonに翻訳できる、他の言語でのTANベイズ分類器の学習と推論のための読み取り可能なオブジェクト指向の実装はありますか?


私が知っているが不適切であると思われる既存のパッケージは

  • milk、これは分類をサポートしますが、ベイジアン分類子ではサポートしません (そして、分類と未指定の機能の確率が絶対に必要です)
  • pebl、構造学習のみを行います
  • scikit-learn、単純ベイズ分類器のみを学習します
  • OpenBayesに移植されて以来、ほとんど変更されておらずnumarraynumpyドキュメントはごくわずかです。
  • libpgm、さらに異なる一連のものをサポートすると主張しています。主なドキュメントによると、推論、構造、およびパラメーターの学習を行います。ただし、正確な推論のための方法はないようです。
  • Reverendは「ベイジアン分類器」であると主張していますが、ドキュメントはほとんどありません。ソース コードを見ると、 Robinsonおよび同様の方法によると、ほとんどがスパム分類器であり、ベイジアン分類器ではないという結論に達しました。
  • eBay のbayesianBelief Networksは、一般的なベイジアン ネットワークの構築を可能にし、それらに推論 (正確および近似の両方) を実装します。つまり、TAN の構築に使用できますが、そこには学習アルゴリズムはなく、関数から BN を構築する方法はありません。これは、パラメーター学習の実装が、仮想的な別の実装よりも難しいことを意味します。
0 投票する
2 に答える
776 参照

machine-learning - ベイジアンネットワークでは、ノードが「インスタンス化」されるとはどういう意味ですか

ベイジアンネットワークでこれらのスライドをフォローしようとしています。ベイジアンネットワークのノードが「インスタンス化」されるとはどういう意味か、誰か説明してもらえますか?

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

machine-learning - ベイジアンネットによる新しいインスタンスの分類

次のベイジアン ネットワークがあるとします。

ここに画像の説明を入力

そして、新しいインスタンスを H=true または H=false で分類したいとします。新しいインスタンスは、たとえば次のようになりますFl=true, A=false, S=true, and Ti=false

H に関してインスタンスを分類するにはどうすればよいですか?

テーブルの確率を乗算することで、確率を計算できます。

0.4 * 0.7 * 0.5 * 0.2 = 0.028

これは、新しいインスタンスが正のインスタンス H であるかどうかについて何を示していますか?

EDIT ベルンハルト・カウスラーの提案に従って確率を計算してみます:

これがベイズの法則です。 P(H|S,Ti,Fi,A) = P(H,S,Ti,Fi,A) / P(S,Ti,Fi,A)

de 分母を計算するには: P(S,Ti,Fi,A) = P(H=T,S,Ti,Fi,A)+P(H=F,S,Ti,Fi,A) = (0.7 * 0.5 * 0.8 * 0.4 * 0.3) + (0.3 * 0.5 * 0.8 * 0.4 * 0.3) =0.048

P(H,S,Ti,Fi,A) = 0.336

それでP(H|S,Ti,Fi,A) = 0.0336 / 0.048 = 0.7

P(H=false|S,Ti,Fi,A) = P(H=false,S,Ti,Fi,A) / P(S,Ti,Fi,A) 今、私はすでに の値を持っていると計算しますP(S,Ti,Fi,A´. I's ´0.048

P(H=false,S,Ti,Fi,A) =0.0144

それでP(H=false|S,Ti,Fi,A) = 0.0144 / 0.048 = 0.3

の確率P(H=true,S,Ti,Fi,A)が最高です。したがって、新しいインスタンスはH=Trueとして分類されます

これは正しいです?

追記:P(H=false|S,Ti,Fi,A) 1 - なので計算しなくてもいいですP(H=true|S,Ti,Fi,A)

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

r - 因子のデータフレームの読み取り(R)

私はRの初心者です。パッケージで使用するには、「因子のデータフレーム」が必要です。

次の形式のテキストファイルがあります。

したがって、各列は1、2、または3の変数を表します。このようなテキストファイルから因子のデータフレームを取得できるコマンドを提案してください(ファイルをマトリックスとして読み取るだけでは機能しません。必須です)本当の「要因」を持つために)。

前もって感謝します。