1 説明 2 課題

1
説明
決定木とは,節点に属性名,枝に属性値,葉にクラスが与えられた木である.与えられたデー
タを分類する際は,木の根から順に節点の属性に対応するデータの属性値を調べ,対応する属
性値の枝を辿る.葉まで達したとき,そのデータを葉のクラスに分類する.
ID3 は,情報量に基づき分類力の高い属性を選択することにより,簡潔な決定木を生成す
ることができる.
• エントロピー (平均情報量) の定義
エントロピーは以下のように定義できる.
∑
Entropy(X) = − x∈X p(x) log p(x)
ただし,X は事象の集合,x は事象,p(x) は事象 x の生起確率である.
以下では簡単のために,事象の代わりに,生起確率を直接記述した式も用いる.
e(p) = −p log2 p − (1 − p) log2 (1 − p)
e(0)=e(1)=0, e(1/4)=e(3/4)=0.8113, e(1/3)=e(2/3)=0.9183, e(1/2)=1
• 情報利得, 獲得情報量 (Information Gain) 事例集合 S をある属性 A で分類したときに獲
得される情報量を information gain といい,G(S, A) と表現する.
Entropy(S) − 集合 S を属性 A で分類後の情報量
∑ |SA=v |
Entropy(SA=v )
= Entropy(S) −
|S|
(1)
= {s|s ∈ S and s の属性 A の値が v}
(3)
G(S, A) =
(2)
v∈A
SA=v
ただし,|S|,|SA=v | は集合 S,SA=v の要素数である.
• 分類属性の選択
G(S, A) が最大となる属性 A を S の分類属性として選択する.なお,G(S, A)/|A| を基
準とする場合もある.ここでは G(S, A) を基準とし,G(S, A) が同じ場合,属性値の数が
少ない属性を用いる.
2
課題
以下の事例集合 D に対して,ID3 アルゴリズムにより,決定木を学習せよ.
• 事例空間 X
–
–
–
–
–
–
事例の表現: < aoutlook , atemp , ahumidity , awind >
予報: Aoutlook = { 晴, 曇, 雨 }
気温: Atemp = { 暖, 適, 冷 }
湿度: Ahumidity = { 高, 並 }
風: Awind = { 強, 弱 }
クラス: C = {Y es, N o}
• 訓練事例集合 D
No
d1
d2
d3
d4
d5
d6
d7
d8
Examples
< 晴, 暖, 高,
< 晴, 暖, 高,
< 曇, 暖, 高,
< 雨, 適, 高,
< 雨, 冷, 並,
< 雨, 冷, 並,
< 曇, 冷, 並,
< 晴, 適, 高,
1
弱
強
弱
弱
弱
強
強
弱
>
>
>
>
>
>
>
>
Yes/No
No
No
Yes
Yes
Yes
No
Yes
No
3
解答
• D における分類前の情報量
分類前の情報量はその集合のエントロピーと等しい.Entropy(D)=e(4/8)=e(1/2)=1
• D における情報利得と分類属性の選択
分類属性
A
予報
気温
湿度
風
分類後の情報量
3/8 Entropy(D予報=晴 ) + 2/8 Entropy(D予報=曇 ) + 3/8 Entropy(D予報=雨 )
= 3/8 e(0/3) + 2/8 e(2/2) +3/8 e(2/3) = 3/8 ∗ 0.9183 = 0.3444
3/8 Entropy(D気温=暖 ) + 2/8 Entropy(D気温=適 ) + 3/8 Entropy(D気温=冷 )
= 3/8 e(1/3) + 2/8 e(1/2) + 3/8 e(2/3) = 6/8 ∗ 0.9183 + 2/8 ∗ 1= 0.9387
3/8 Entropy(D湿度=高 ) + 2/8 Entropy(D湿度=並 )
= 5/8 e(2/5) + 3/8 e(2/3) = 5/8∗0.9709 + 3/8∗0.9183 = 0.9512
3/8 Entropy(D風=強 ) + 5/8 Entropy(D風=弱 )
= 3/8 e(1/3) + 5/8 e(3/5) = 3/8∗0.9183+5/8∗0.9709 = 0.9512
したがって,分類のための属性値としては,予報を選べばよい.
• 予報により D を分類後の集合
(4)
S2
= D予報=晴 = {d1(N o), d2(N o), d8(N o)}
= D予報=曇 = {d3(Y es), d7(Y es)}
S3
= D予報=雨 = {d4(Y es), d5(Y es), d6(N o)}
(6)
S1
(5)
S1 のラベルは全て No,S2 のラベルは全て Yes なので葉ノードになる.
• S3 における分類前の情報量
Entropy(S3 )=e(2/3)=0.9183
• S3 における情報利得と分類属性の選択
分類属性
A
気温
湿度
風
分類後の情報量
1/3 Entropy(S3 気温=適 ) + 2/3 Entropy(S3 気温=冷 )
= 1/3 e(1/1) + 2/3 e(1/2) = 2/3∗1 = 0.6667
1/3 Entropy(S3 湿度=高 ) + 2/3 Entropy(S3 湿度=並 )
= 1/3 e(1/1) + 2/3 e(1/2) = 2/3∗1 = 0.6667
1/3 Entropy(S3 風=強 ) + 2/3 Entropy(S3 風=弱 )
= 1/3 e(0/1) + 2/3 e(2/2) = 0
情報利得
G(S3 , A − { 予報 })
0.2516
0.2516
0.9183
したがって,分類のための属性値としては,風 を選べばよい.
• 風 により S3 を分類後の集合
S31
S32
= S3 風=強 = {d6(N o)}
= S3 風=弱 = {d4(Y es), d5(Y es)}
(7)
(8)
S31 , S32 はいずれも正事例あるいは負事例のみなので,Yes あるいは No のラベルを付
けて終了.
• 決定木
2
情報利得
G(D, A)
0.6556
0.0613
0.0488
0.0488
ணሗ
ᬕ
d1,d2,d8 No
㞵
᭎
㢼 d4,d5,d6
Yes
d3,d7
3
ᙉ
ᙅ
No
Yes
d6
d4,d5