2つのカテゴリX、Yがある時に、p(X|Y)、p(Y|X)は、同じにはなりません。 スコアによる ベイジアンネットワークによるデータの構造解析 では、この性質が応用されています。
ベイジアンネットワークによるデータの構造解析 にも書きましたが、変数がたくさんある時に、スコアを調べて、有向グラフを作る方法は、トップダウンのアプローチです。
構造の仮説を作り、仮説ごとにスコアを計算して、一番スコアが高いものを、答えと考えます。
構造の仮説は矢印の向きも含んだものになります。 そのため、変数の組合せに加えて、向きの組合せもあるので、大変な数の組合せになります。
地道にすべてを計算した研究報告も見受けられますが、何からの工夫で、すべての組合せの計算は回避するアルゴリズムが、いろいろと考案されています。
「つくりながら学ぶ! Pythonによる因果分析 因果推論・因果探索の実践入門」 小川雄太郎 著 マイナビ出版 2020
スコアとしてBICを使う方法が紹介されています。
「Rと事例で学ぶベイジアンネットワーク 原著第2版」 Marco Scutari ・Jean-Baptiste Denis 著 共立出版 2022
Rのbnlearnパッケージを使ったスコアの計算方法が書かれています。
「フリーソフトではじめる機械学習入門」 荒木雅弘 著 森北出版 2014
対数尤度を最大化するように探索するK2アルゴリズムが紹介されています。
「データからのベイジアンネットワークの構造推定」 中井眞人 著
スコアベースの方法として、MDLをスコアとする方法を紹介しています。
https://www.jstage.jst.go.jp/article/jsaikbs/106/0/106_05/_pdf/-char/ja
「Titanicデータでベイジアンネットワークを実装」 Yuya Omori 著
条件付き独立による探索
では、矢印の方向がわからない部分について、BICをスコアとして、探索する方法を紹介しています。
https://qiita.com/YuyaOmori/items/e051f0360d1f9562620b
「統計モデル選択の概要」 松嶋敏泰 著
AIC、BIC、MDLは、式の形が似ていることから、考察しています。
https://orsj.org/wp-content/or-archives50/pdf/bul/Vol.41_07_369.pdf
順路 次は ベイジアンネットワークによる判別