[R] {deal} ベイジアン・ネットワークの構築

Rのdealパッケージを使用してベイジアンネットワークを構築するためのソースの最小構成(スケルトン)を示す。

library(deal)
net1 <- network(df1) # 初期ネットワークオブジェクトを作成する。df1 はデータフレーム・オブジェクト
dist1 <- jointprior(net1) # 初期モデルの事前分布を作成する
learn1 <- learn(net1, df1, dist1) # パラメータの分布を更新する
net2 <- getnetwork(learn1) # 学習結果からモデルの部分だけを取り出す
# 禁止リストを作成する
# ひいてはいけない有向辺を必要な数だけ指定する指定する。
# 以下の例ではデータフレームの1~4列目から5列目への有向辺を禁止している。
ban1 <- matrix(c(
"1","5",
"2","5,
"3","5",
"4","5"
),ncol=2, byrow=T)
banlist(net2) <- ban1 # set ban list # 作成した禁止リストを設定する
net3 <- autosearch(net2, df1, dist1) # 最適なモデルを自動検索する
localprob(getnetwork(net3)) # 局所確率を出力する

コメント