web-dev-qa-db-ja.com

ベイジアンネットワークと単純ベイズ分類器の違いは何ですか?

ベイジアンネットワークと単純ベイズ分類器の違いは何ですか? 1つはclassifyとしてMatlabに実装されているだけで、もう1つにはネットツールボックス全体があることに気付きました。

どちらがより良い精度を提供する可能性が高いかをあなたの答えで説明できれば、私は感謝します(前提条件ではありません)。

20
G Gr

予測タスクの解決のみに関心がある場合は、簡単に答えてください。ナイーブベイズを使用してください。

ベイジアンネットワーク(優れた wikipedia ページ)は、非常に一般的な方法で機能間の関係をモデル化します。これらの関係が何であるかを知っている場合、またはそれらを導出するのに十分なデータがある場合は、ベイジアンネットワークを使用することが適切な場合があります。

単純ベイズ分類器は、ベイジアンネットワークの特定のクラスを記述する単純なモデルです。ここでは、すべての機能がクラス条件付きで独立しています。このため、ナイーブベイズでは解決できない特定の問題があります(以下の例)。ただし、その単純さにより、適用も容易になり、多くの場合、良好な結果を得るために必要なデータが少なくなります。

例:XOR

バイナリ機能_x1_と_x2_およびターゲット変数_y = x1 XOR x2_で学習の問題があります。

単純ベイズ分類器では、_x1_と_x2_を個別に処理する必要があるため、「_y = 1_が与えられた場合の_x1 = 1_の確率」などを計算します。 _x1 = 1_は_y = 1_の可能性を多かれ少なかれ作成しないため、これは役に立ちません。ベイジアンネットワークは独立性を前提としていないため、このような問題を解決することができます。

31
Richante

ナイーブベイズは、一般的なベイジアンネットワークの制限付き/制約付き形式であり、クラスノードに親がなく、属性変数に対応するノード間にエッジがないという制約を適用します。したがって、一般的なベイジアンネットワークが分類に使用されることを妨げるものは何もありません-予測されたクラスは、他のすべての変数が通常のベイズ推定方式で予測インスタンス値に設定されたときに最大の確率を持つクラスです。これについて読むのに適した論文は、「ベイジアンネットワーク分類器、機械学習、29、131–163(1997)」です。特に興味深いのはセクション3です。ナイーブベイズはより一般的なベイジアンネットワークの制約された形式ですが、このペーパーでは、分類タスクでナイーブベイズが一般的なベイジアンネットワークよりも優れている理由についても説明します。

6
beejay

分類子としてのベイジアンネットワークの場合、ベイジアンスコアリング関数や最小記述長などのいくつかの スコアリング関数 に基づいて特徴が選択されます。 (十分なトレーニングデータがある場合、2つは理論的には互いに同等です)。スコアリング関数は、主にデータを使用して構造(接続と方向)とパラメーター(尤度)を制限します。構造が学習された後、クラスはマルコフブランケット内のノード(その親、その子、およびその子の親)によってのみ決定され、マルコフブランケットに与えられたすべての変数は破棄されます。

最近よく知られているナイーブベイジアンネットワークの場合、すべての機能は属性と見なされ、クラスが与えられると独立します。

ベイジアンネットワークとナイーブベイジアンネットワークにはそれぞれ長所と短所があり、以下に示すようにパフォーマンスの比較(主にUCIリポジトリからの25のデータセットで実行)を確認できます。

enter image description here

これらのデータセットでは、ナイーブベイズを表す対角線の下にベイジアンネットワークよりもパフォーマンスが優れている点がいくつかあり、他のいくつかのデータセットでは、対角線より上にある点が逆になっていることがわかります。

ベイジアンネットワークはナイーブベイズよりも複雑ですが、ほぼ同等のパフォーマンスを発揮します。その理由は、ベイジアンネットワークのパフォーマンスがナイーブベイズよりも劣るすべてのデータセットに15を超える属性があるためです。それは構造学習中にいくつかの重要な属性が破棄されます。

2つを組み合わせて、ナイーブベイズの機能間にいくつかの接続を追加すると、ツリー拡張ナイーブベイズまたはk依存ベイズ分類器になります。

enter image description here

参照:
1。 ベイジアンネットワーク分類器

0
Lerner Zhang