データ工学特論

データ工学特論
第四回
木村昌臣
本日の話題


決定木
遺伝的アルゴリズム(GA)
決定木


学習用データ内のレコード
を複数のサブセットに分割
し、その結果をもとに、新し
いレコードの属性を予測す
る手法
目的志向的データマイニン
グ
買った?
年齢
○
21歳
○
25歳
○
30歳
×
29歳
×
50歳
×
60歳
○
3
×
3
年齢≦30
年齢>30
○
3
○
0
×
1
×
2
決定木のイメージ:
赤い色と青い色を分けてください(問題)
Y:収入
商品を買った人
商品を買わなかった人
X:年齢
決定木のイメージ:
赤い色と青い色を分ける
X > aであれば
すべて青
Y:収入
a
X:年齢
決定木のイメージ:
赤い色と青い色を分ける
Y:収入
b
X < a かつ Y < b
であれば全て赤
a
X:年齢
決定木のイメージ:
赤い色と青い色を分ける
c<X<a
かつ Y>b
であれば全て赤
Y:収入
b
X < c かつ Y > b
であれば全て青
c
a
X:年齢
決定木のイメージ:
赤い色と青い色を分ける話を木の形で表現
どんな条件で
赤と青が分離できるか
枝をたどれば
一目瞭然
全体
X a
X a
全て青
Y b
Y b
全て赤
X c
全て赤
X c
全て赤
ただし・・・

現実のデータでは、これほど綺麗な分類が
できないことが多い


切り口が軸方向に沿っていない場合、100%赤
だけ・青だけというようなわけ方はできない
ただし、なるべく赤と青を分離したい
赤が多い・青が多いなどとなるべく
色に偏りがある切り口を選びたい
偏りの指標

Giniインデックス
C
GINI  1   p
i 1

2
i
エントロピー
C
S   pi log pi
i 1
C: カテゴリの数
pi: i番目のカテゴリに属する割合(確率)
Giniインデックス(1)
C
C
i 1
i 1 j i
GINI  1   pi2   pi p j
独立に動く二匹の犬が同じ場所にいない確率
(もし、確率に偏りがあれば、あるpiが1に近づき、二匹とも同じ
場所にいることが多くなり、インデックスは0に近づく)
カテゴリ1
カテゴリ2
カテゴリ3
Giniインデックス(2)
C
GINI  1   p  1  (0  1  0 )  0
i 1
2
i
2
2
2
p1  0, p2  1, p3  0
カテゴリ1
カテゴリ2
カテゴリ3
Giniインデックス(3)
2
2
2
5
1 1 1
GINI  1   p  1  (        )   0
8
 4  2  4
i 1
C
2
i
1
1
1
p1  , p2  , p3 
4
2
4
カテゴリ1
カテゴリ2
カテゴリ3
決定木の分岐(Giniインデックス)

分岐前と分岐後のGiniインデックスの値の差が最
大になるように分岐条件を決定
n( j )
GINI  GINI  
GINI ( j )
N
j
GINI  1   p
2
i
i
N
p1
GINI
p2
n
p1(1)
( j)
 
 1  p
( j) 2
i
i
(1)
p2(1)
p1( 2)
n ( 2)
p2( 2)
エントロピー(1)
C
C
C
1
S   pi log2 pi   pi log2
  pi I i
pi i 1
i 1
i 1
I=log21/p は確率pが持つ情報量
例) p=1/2 ではlog22=1 bit
p=1/4 ではlog24=2 bit など
確率が均等なら、この情報量は状態の数を表す
ビット数に等しくなる
p=1/N、I=log21/p = log2N (N=2I)
ただし、各確率が均等である保証はないので、この情報量の平
均をとったものがエントロピーとなる(平均情報量)。
エントロピー(2)
C
S   pi log2 pi  0 log2 0  1log2 1  0 log2 0  0
i 1
p1  0, p2  1, p3  0
カテゴリ1
カテゴリ2
カテゴリ3
(ただし、x logx →0 (x→0)のため、0log0=0と定義する)
エントロピー(3)
C
1
1
1
3
S   pi log2 pi  log2 4  log2 2  log2 4   0
4
2
4
2
i 1
1
1
1
p1  , p2  , p3 
4
2
4
カテゴリ1
カテゴリ2
カテゴリ3
決定木の分岐(エントロピー)

分岐前と分岐後のエントロピーの差が最大になる
ように分岐条件を決定
n( j ) ( j )
S  S  
S
N
j
S   pi logpi
i
S ( j )   pi( j ) logpi( j )
N
p1
n
p2
p1(1)
i
(1)
p2(1)
n ( 2)
p1( 2)
p2( 2)
C5.0

説明変数の値(範囲)による決定木




データは複数(二つとは限らない)に分割される
木は深さ方向より横方向に成長する傾向がある
(長所)データが二つ以上に分けやすいときに自
然な分岐を実現する
(短所)分岐での枝分かれの数が多すぎると枝
に属するデータが急激に少なくなる


学習時の信頼性が低下する場合がある
分岐にはエントロピーを利用
CART(C&RT)

2進木(binary tree)による決定木





分岐ではデータは必ず二つに分ける
木は横方向より深さ方向に成長する傾向がある
(長所)分岐での枝分かれの数が2と決まってい
るので枝に属するデータが急激に少なくなること
がない
(短所)二つ以上に分割すべきデータが対象で
あるとき、不自然に複雑な分岐が続くことがある
分岐にはGiniインデックスやエントロピーを
利用
枝刈り

詳細に分岐しすぎると学習用データに対してオー
バーフィットしてしまう可能性がある



枝に近づくにつれて、該当する学習用データが減少
そのため、たまたま選ばれた学習用データの影響を受
けやすい(一般に成り立つルールが得られない可能性
あり)
基準を設けて細かすぎる枝を刈る


誤分類率+葉ノードの数 が最小になるように刈る
学習用データと同じ母集団から収集された別データをテ
ストデータとして利用し、その誤分類率が最小になるよう
枝を刈る
など
【復習】モデル作成時の注意点(2)

オーバーフィット



学習用データや特定の入力データの特異性を
とりこんでしまっている状態。
他の一般データにモデルを応用できない。
アンダーフィット

入力データから意味のある情報を抽出しそこ
ねている状態。


重要な意味をもつはずの入力データ項目を抜
かしてしまっているなどが原因
意味のあるモデルを得ることができない。
決定木の長所・短所

長所



結果やその導出根拠がわかりやすい。
連続変数とカテゴリ変数を両方利用できる
短所


説明変数の軸に垂直に分類しにくいデータでは
精度が低い
C5.0などではノードあたりの分岐が多すぎると
各分岐に該当するサンプルデータが少なくなり
精度を低下させる可能性がある
遺伝的アルゴリズム(GA)




遺伝子のメカニズムを
モデル化
評価関数の最適値を求
める
データの交差・突然変
異を用いて世代を下る
につれて解を得るアル
ゴリズム
目的思考的データマイ
ニング
GTACCGGA
突然変異
AGGCCTAA
GTACCTGA
交差
GTACCTAA
AGGCCGGA
☆実際の計算ではATGCではなくて
0/1などの数値列を扱う
次の関数の極値を求める方法は?
x
x
y
(1 
)
256
256
0  x  256
次の関数の極値を求める方法は?
x
256
y
sin
256
x
0  x  256
遺伝的アルゴリズム(1)
複雑な(そうでない場合も)関数の極値を得
る方法。以下の手順を繰り返す。
1. 入力値(x)をビット表現し、遺伝子に見立て、
適応度(=関数の値)の高いものをキープす
る

 x= [17]10=[000010001]2 → y=0.062
 x= [80]10=[001010000]2 → y=0.215 (キープ)
 x=[255]10=[011111111]2 → y=0.003
遺伝的アルゴリズム(2)
2. それぞれの個体(xの値)間で、その一部の
ビットをスワップする[交叉]
[000010001]2
[011111111]2
[000011111]2
[011110001]2
y=0.106
y=0.055
(出来上がった新しい個体のなかには適応度が上がるものがある
可能性がある)
3. 1.や2.で得られた個体の一部のビットを反転
させる[突然変異]
[001010000]2
[001110000]2
y=0.246
遺伝的アルゴリズム(3)
4. 交叉や突然変異で得られた新しい個体xを
入力とし、1.~3.を適応度(=関数の値)が改
善されなくなるまで繰り返す。
遺伝的アルゴリズムのグラフ的理解
初期値
y
1
適用度が高い
ので残す
x
0
17
80
128
255 256
遺伝的アルゴリズムのグラフ的理解
交叉
y
1
•二つのxを掛け合わせることにより
適用度が改善される可能性がある
•特に適応度が高い遺伝子を掛け
合わせると適応度が高い子供が
できると期待できる
(下位ビットの調整に相当)
256
0
17
31
80
128
241
255
x
遺伝的アルゴリズムのグラフ的理解
突然変異
y
1
遺伝子の もつ値を大きく振ること
により適応度(関数)の
local maximumに収束するのを防ぐ
x
0
31
80
112
128
241
256
スキーマ定理

スキーマ

ワイルドカード「*」には0または1に入り、それ以
外の部分(固定位置)が共通しているものをまと
めたもの


(例) [1101]と[1011]はスキーマ[1**1]に属する。
スキーマ定理

固定位置の数が少なく、適応度が高いスキーマ
が繁栄する

固定位置の数がすくないと交叉の影響を受けにくい
遺伝的アルゴリズムの長所・短所

長所


自然界の遺伝の仕組み(淘汰・交叉・突然変異)との類
推がつき、わかりやすい
適用度(関数)が定義できれば、利用可能。


最適化問題の解法の強力なツール
短所


データをすべて1と0のバイナリ列に変換する必要がある
大域解を得ることを考慮(突然変異)されたアルゴリズム
であるが、必ずしも大域解が得られない場合がある