トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

ベイジアンネットワークのアルゴリズムの違い

ベイジアンネットワークによるデータの構造解析 のアルゴリズムは、いろいろあります。

「データの構造を調べる」という分析を目的にしている時に、どのアルゴリズムが良いのかを調べたのがこのページになります。

まず、結論は「アルゴリズムは、PCが一番良い。」になります。

また、この調査の中で、どのアルゴリズムを使うとしても、量的変数は、質的変数に変換してから分析した方が良いことも確認しています。

調べ方

サンプル数は、サンプルが足りなかったから、正しい結果が出せないとならないように、10000にしています。

記号

例えば、表の中で、「a-b-c-ab」という列は、変数が左から順にA、B、C、ABとなっている表について、質的変数にしています。

「a-b-c-ab」、「ab-a-b-c」は、変数の並び方だけが違います。 この調査では、変数の並び方の違いも調べています。

分析の仕方

セルが青の場合は、本当の構造とグラフが同じ場合です。 この例では、AとBでABを作っているので、AかAB、BからABに矢印があって、Cはどことも結び付かないのが正解なのですが、その通りになっています。
BN

セルが黒の場合は、絶対に出して欲しくない結果になった場合です。 この例では、AとBは独立しているので、結び付かないのが正解なのですが、結び付いています。
BN

セルが赤の場合は、間違いな点は黒と同じです。 この例では、例えばACからAを作っていないのに、ACからAに矢印が付いています。
BN

セルが緑の場合は、データの背景を突き止めるところまではできないものの、ある程度考察できるようになる結果になった場合です。 データだけでは矢印の向きが決められないのなら、結び付けることだけをして向きは決めてくれない方が、後の分析で間違わないので助かります。 上の赤の例のデータの場合、この緑のようなグラフになるのが、分析としては理想です。
BN

アルゴリズムの比較(1)

アルゴリズムは、Rのbnlearn、BNSL、dealのパッケージを使っています。 下記で、「BNSL」、「deal」となっているもの以外は、すべて、bnlearnのアルゴリズムです。 Rによるベイジアンネットワーク のコードを使っています。

パラメタはデフォルトを使っています。

条件付き独立性検定(constraint-based)系(1)

量的変数を使っているAB-A-B-C以外では、青または緑になっています。 このグループがベストなので、このページの冒頭の結論になっています。
BN

条件付き独立性検定には、有意水準のαがあり、何も指定しないと0.05がデフォルトとして使われます。 量的変数のままだと、辺がたくさん出て来るのは、量的変数の方が、0.05よりも低くなりやすいためです。

条件付き独立性検定(constraint-based)系(2)

constraint-based系(1)で青にできることが、緑になっています。
BN

スコアベース(score-based)系とハイブリッド(hybrid)系

変数の順番が違うだけで、青になったり、赤になったりします。 この特徴の使い道があるかもしれませんが、データの順番の意味があるのかどうかもわからないデータの分析には、不向きなアルゴリズムです。
BN

local discovery系

黒が多いので、この使い道だと、使えないです。
BN

アルゴリズムの比較(2):条件付き独立性検定(constraint-based)系の違い

アルゴリズムの比較(1)で、条件付き独立性検定(constraint-based)系のグループが良いことがわかりましたが、 このグループの中での違いはわからないです。

もう少し複雑なデータで試してみたところ、一番良いのは、PCということがわかりました。 他のものは、結び付いて欲しくないところが結び付いたり、矢が集まって来て欲しいABCDが孤立したりしました。
BN



順路 次は ベイジアンネットワークによる判別

Tweet データサイエンス教室