さて、次に、実際のベイジアンネットワークの設計方法を御説明致します。
今回は、これまでも何度が登場したNTT数理データ数理システムの「BAYONET」を使って説明しますが、ベイジアンネットワークのツールの使い方は、おおむねどれも同じ様です。
説明の題材は、第4回の時にも使ったネイト・シルバーさんの著書「シグナル&ノイズ」の「パンティ問題」の話をそのまま使います。
ベイジアンネットワークの設計は、ひと言で言えば、原因(浮気)のノードと、結果(パンティ)のノードを作って、原因から結果に向けて矢印を引くだけです。
ベイジアンネットワークの設計で、最も混乱しやすいことが、何が原因で、何が結果なのかが、設計している自分自身でも分からなくなる点にあります。
では、どう考えれば良いかと言うと、最初にノードだけ作っておいて、矢印については「後から考えればいい」のです。
具体的には、「IF(浮気), THEN(パンティ)」の関係と、「(浮気)と(パンティ)の確率」が分かっていれば、(浮気)から(パンティ)に矢印を引くことで、ベイジアンネットワークの設計は完成です。
つまり、ベイジアンネットワークは、この矢印の逆方向、つまり、"THEN"から"IF"に向けて解くものとだけ覚えておいていただければ十分です。
ノードを作ると、上記のような表が自動生成されます。この表のことをCPT(Condition Probability Table(条件付き表)と呼びます(名前なんかどーでもいいですが)。
ただ、ここでは、浮気(条件)のCPTが"2×1"の表になるのに対して、パンティ(結果)のCPTが"2×2"の表になることだけを覚えておいてください。
Copyright © ITmedia, Inc. All Rights Reserved.