情報知能学基礎演習 豊田秀樹(2008)『データマイニング入門』

白井ゼミ
豊田秀樹(2008)『データマイニング入門』 (東京図
書)第7章
情報知能学科
白井 英俊
7章 ベイジアンネットワーク
(Bayesian Network)
• ベイジアンネットワーク:観測されたデータか
ら探索的に因果モデルを構築
事象間の影響関係を視覚的なモデルとして記述
不確実な事象を扱うための計算モデル
不確実な事象 ⇒ 統計学における確率変数
事象間の影響関係 ⇒ 確率変数同士の確率
的な依存関係
多変量解析手法との比較
• 多変量解析:複数の変数によって構成された多変量デー
タを統計的に処理し、何らかの有益な情報を取り出す分
析手法の総称
単回帰分析、重回帰分析、因子分析、主成分分析など
共通点:仮定する母集団の特徴を把握する、という目的
で使用され、変数間の線形な共変関係に基づいて分析
• パス解析:強力だがモデル構成が恣意的になりすぎる
• 問題の解決:(1)他の要因を取り除き、(2)変数の影響
関係を方向つきで、(3)想定する状況に関連するすべて
の変数に対し、(4)データから探索的にモデルを構築。
(5)連続変数と離散変数の両方をモデルに組み込み可能
ベイズ統計学
• 用語: 同時確率、条件付き確率
基本公式: p(A,B) = p(A) * P(B|A)
= p(B) * P(A|B)
• 周辺確率: 同時確率を一方の確率変数に対してす
べて加算して求める
ベイズ統計学(続)
• 確率の加法定理(離散)
p( X )   p( X , Y )
• 確率の乗法定理(離散)
Y
p( X , Y )  p(Y | X ) p( X )
• 確率の加法定理(連続)
p ( x)   p ( x, y )dy
• 確率の乗法定理(連続)
p ( x)  p ( y | x) p ( x)
ベイズ統計学(続)
ベイズの定理1
p( X | Y ) p(Y )
p(Y | X ) 
p( X )
p(X)は周辺確率であるから
p( X )   p( X , Y )   p(Y , X )   p( X | Y ) p(Y )
Y
Y
ベイズの定理2
p( X | Y ) p(Y )
p(Y | X ) 
 p( X | Y ) p(Y )
Y
Y
ベイズの定理の例
• 箱が角箱、丸箱、三角箱と3つあり、それぞれの箱の
中には次の個数の赤と白の玉が入っているとする。
角箱: 赤 10個、白 10個
丸箱: 赤 10個、白 15個
三角箱:赤 5個、白 0個
• p(赤), p(白): それぞれ赤球と白球を引く確率
• p(角), p(丸), p(三) : それぞれ角箱、丸箱、三角箱を選
ぶ確率。ここでは簡単のため1/3と仮定。
簡単
• p(赤|角) : 角箱を選んだときに赤球を引く確率 分る?
• p(角|赤) : 赤球を引いたときに、角箱を選んだ確率
ベイズの定理の例(続き)
角箱: 赤 10個、白 10個
丸箱: 赤 10個、白 15個
三角箱:赤 5個、白 0個
p(角|赤) : 赤球を引いたときに、角箱を選んだ確率
p (赤 | 角) * p (角)

p (赤)
p (赤 | 角) * p (角)

p (赤 | 角) * p (角) p (赤 | 丸) * p (丸)  p (赤 | 三) * p (三)
1 / 2 *1 / 3
1/ 6
5



1 / 2 *1 / 3  2 / 5 *1 / 3  1 / 1*1 / 3 1 / 6  2 / 15  1 / 3 19
練習問題
ある人がタイプする時、文字qをタイプするのは
1. qを入力しようとしてqをタイプする
(条件付き確率、0.99)
2. aを入力しようとしてqをタイプする (条件付き確率0.01)
3. wを入力しようとしてqをタイプする (条件き確率0.02)
の3通りの可能性があることが分かっているとする。
ここでその人がqを入力する確率は0.0001、aを入力する確率
は0.02、wを入力する確率は0.001であるとする。
ここでその人がqをタイプした。この時、この人は何を入力
しようとしたと考えられるだろうか?
多数の事象の同時確率
• 3つの事象の同時確率と条件付き確率の関係
p(X,Y,Z) = p(Z|X,Y)*p(X,Y)
= p(Z|X,Y) * p(Y|X) * p(X)
• これを一般化すると
p(X1,X2,…,Xn) = p(Xn|Xn-1,…,X1) * … * p(X1)
ベイジアンネットの基礎
• 条件付き独立(7.2.3節)
事象XとYが独立: p(X,Y) = p(X)*p(Y)
条件付き独立: 事象X,Yが「独立」でなくとも
ある事象Zに対し、p(X,Y|Z)=p(X|Z)*p(Y|Z)
となる場合、X,YはZのもとで条件付き独立
p(X1,X2,…,Xn) = p(Xn|Xn-1,…,X1) * … * p(X1)
を表すグラフにおいて、条件付き独立の関係に
あるノード間の有向辺を切断⇒
N
pa(Y)はノードYの親集合
p(X) Πp( X k | pa( X k ))
k 1
有向グラフにおける同時確率の因数分解性
ベイジアンネットの本質
事象間の影響関係をグラフ的なモデルとして記述する
データから探索的にモデルを構築する
0. まず無関係な要因をすべて取り除く。そのうえで
1. 変数間の影響関係を方向つきで
2. 想定する状況に関連するすべての変数に関して
3. 得られたデータから探索的に
モデルを構築する
ベイジアンネットワークの構築法
いろいろな手法:K2アルゴリズム、遺伝的アルゴリズム
貪欲アルゴリズム(Greedy algorithm)
1. 探索の出発点となる初期モデルGを設定
2. 次の三つの場合のモデルとGとの間のベイズファクター
をすべて計算:有向辺を1つ付け加える、有向辺を1つ
削除、1つの有向辺の向きを反転
3. これらにおいて最もベイズファクターが増加したモデル
(7.21)式
を選択
4. 増加しなければ終了。そうでないなら選択したモデルを
Gとして2へ
本日の課題
• 実行すべき例題は今回は少ない
もちろんやってみるのだが。。。
• そのため、ベイジアンネットについて、教科書
やいろいろな資料に基づき、自分なりのまと
めを作ってみよ
Score: -606.0825
Relscore: 1
体重
人種
喫煙
高血圧
過敏
> 事後ネットワーク <- autosearch(事前ネットワーク, 出生, 事前分布)
[Autosearch (1) -619.4821 [体重][喫煙|人種][過敏][高血圧][人種]
(2) -616.5 [体重][喫煙|人種][過敏|高血圧][高血圧][人種]
(3) -613.5305 [体重|過敏][喫煙|人種][過敏|高血圧][高血圧][人種]
(4) -610.4685 [体重|過敏:高血圧][喫煙|人種][過敏|高血圧][高血圧][人種]
(5) -608.064 [体重|過敏:高血圧][喫煙|人種][過敏|高血圧][高血圧|人種][人種]
(6) -606.9693 [体重|過敏:高血圧][喫煙|過敏:人種][過敏|高血圧][高血圧|人種][人種]
(7) -606.0825 [体重|喫煙:過敏:高血圧][喫煙|過敏:人種][過敏|高血圧][高血圧|人種][人種]
.Total 0.48 add 0.32 rem 0.02 turn 0.07 sort 0.01 choose 0 rest 0.06 ]
$喫煙
, , その他
> localprob(ネットワーク)
$体重
, , 過敏あり, 高血圧あり
過敏あり 過敏なし
喫煙あり 0.4285714 0.2253521
喫煙なし 0.5714286 0.7746479
, , 黒人
喫煙あり 喫煙なし
正常
0.5
0.5
低体重
0.5
0.5
, , 過敏なし, 高血圧あり
喫煙あり 喫煙なし
正常 0.4705882 0.4736842
低体重 0.5294118 0.5263158
, , 過敏あり, 高血圧なし
喫煙あり 喫煙なし
正常
0.48 0.5185185
低体重 0.52 0.4814815
過敏あり 過敏なし
喫煙あり 0.4210526 0.4615385
喫煙なし 0.5789474 0.5384615
, , 白人
過敏あり 過敏なし
喫煙あり 0.5862069 0.5151515
喫煙なし 0.4137931 0.4848485
attr(,"class")
[1] "table"
$過敏
高血圧あり 高血圧なし
過敏あり
0.4 0.2311111
過敏なし
0.6 0.7688889
attr(,"class")
[1] "table"
$高血圧
, , 過敏なし, 高血圧なし
喫煙あり 喫煙なし
正常 0.6176471 0.7714286
低体重 0.3823529 0.2285714
attr(,"class")
[1] "table"
その他
黒人
白人
高血圧あり 0.2020202 0.3275862 0.1640625
高血圧なし 0.7979798 0.6724138 0.8359375
attr(,"class")
[1] "table"
$人種
その他
黒人
白人
0.3473684 0.2035088 0.4491228
attr(,"class")
[1] "table"