1

私はmatlabでの分類のためにベイズネットワークを学ぶ過程にあり、単純な(私が思うに)ステップで立ち往生しています:

したがって、アイリス データ セットのような単純なベイズ分類器の場合、クラスは次のように最上位ノードにあります。

        クラス
/ \ 機能1 機能2

それで、クラスが機能の原因である理由がわかりました。それで、クラス自体が事前確率を持つ理由がわかります。

しかし、単純でないベイズ ネットワークの場合は、次のようになります。

原因1 原因2
     | | \ /
     | | 結果
     | | /
     クラス


ナイーブではないその状況で、事前設定はどのように行われるのでしょうか。これからどうやって分類するの?ありがとう (:

PS: ネットで BNT を探しています。

4

1 に答える 1

3

あなたが言及するすべての変数がカテゴリであり、エッジの方向が上から下であると仮定します。

前科:

最初のナイーブ ベイズの例では、「クラス」の条件付き確率テーブル (CPT) はルート ノードであるため、つまり親を持たないため、事前分布のみで構成されます。「クラス」が 2 つの状態 (例: 黒と白) を取ることができる場合、その CPT は 2 つの値で構成されます。

2 番目のベイジアン ネットワーク (BN) の例では、'class' の CPT は 'cause1' と 'consequence' に依存しています。「結果」には 3 つの状態があり、「原因 1」には 4 つの状態があり、前述のように「クラス」には 2 つの状態があるとします。この場合、「クラス」の CPT には 3*4*2 の値が含まれます。この CPT を学習しているとき、以前の信念をディリクレ分布として組み込むことができます (すべての変数がカテゴリカルである場合)。以前の信念を最尤推定プロセスに組み込む方法の例については、これらの優れた講義スライドをご覧ください。

推論: (または「分類」と呼ばれるもの)

分類の実行に従って、例 1 では、ベイズ ルールを使用して P('class' = white) および P('class' = black) を計算できます。2 番目の (BN) 例では、観測されたノードに基づいて「クラス」ノードの事後確率を更新するために、信念伝播または変数除去またはジャンクション ツリー アルゴリズムを使用する必要があります。

これを達成する方法についての簡単な BNT の例がここにあります.../examplesさらに、BNT ツールボックスには、フォルダーの下にあるジャンクション ツリー機能を使用する簡単な「推論」の例が付属しています。

最後に - 同意しない人もいるかもしれませんが - BN に関する限り、特に構造学習の分野における BN の因果関係の側面は多くの議論の余地があるため、A -> B を「A が B を引き起こす」と厳密に解釈しないことをお勧めします。 .

これが役立つことを願っています。

于 2013-07-29T13:21:13.263 に答える