datamining 2nd decisiontree
TRANSCRIPT
データマイニングクラス分類(I) - 決定木
2010/10/21
• Q. イベント会場にたくさんの人が集まっています.身長を直接聞く,計る方法以外で,1つだけ質問をして,身長を高い人と低い人に分けるとしたら,何を質問しますか?
•Q.2つまで質問が許されるとしたら,何を質問しますか?
• Q. 何をもって「よりよく分かれた」と考えましたか?
• Q. 身長は自己申告性で考えましたか?その場で計測すると考えましたか?
• Q. より身長の高低をを分けるには,幾つの質問が必要でしょう?
データマイニングの主な手法(1/3)
• 教師あり学習• クラス分類(=パターン認識)
• 教師なし学習• クラスタリング• 相関ルール
4
データマイニングの主な手法(2/3)• クラス分類(教師あり学習,パターン認識,
Classification, Pattern Recognition)
• 予測する.占い.• 書かれた数字は,8である• 患者Aは,ガンではない.
境界を作成
境界の適用
訓練データ
テストデータ
予測
5
データマイニングの主な手法(3/3)• クラスタリング(Clustering)
• グループを見つける• Aさんの回答とBさんの回答が近い• 遺伝子Aと遺伝子Bの発現が近い
• 相関ルール(Association Rules),共起• 関連を見つける.• 商品Aを買うと商品Bも買う• 関連語検索
クラスタリング
6
利用するデータ• UCI Machine Learning Repository• 機械学習・データマイニングに利用できる多様なデータが置
かれているサイト• UCI Machine Learning Repository中の、コンタクトレンズ
の処方に関するデータ• 決定木、ナイーブベイズ、アダブーストの3つの説明に利用
する。• 元のデータは、ソフト、ハード、コンタクト無しの3種類を
当てるものであったが、ここでは簡単のため、コンタクトの処方の有無だけを当てる問題に変換してある。
• その他、データも多少簡易化してあるので、元データに興味のある人は、UCI Machine Learning Repositoryを見て欲しい
7
問題 • コンタクトを推めるか否か判別• 患者A~Jの情報から、K、Lのクラスを予測する
ID コンタクト 30才未満 近視 乱視 ドライアイ
A ○ YES YES YES NOB ○ YES YES NO NOC ○ NO YES YES NOD ○ NO YES NO NOE × YES YES YES YESF × YES YES NO YESG × NO NO NO YESH × NO NO NO NOI × NO NO NO YESJ × NO NO NO NO
K ? NO NO YES YES
L ? NO YES NO NO
テスト(属性)クラス訓練データ
テストデータ
8
決定木(けっていぎ)• シンプルな決定ルールを木状に並べたもの• よくある雑誌の占いの様なもの
9
近視?
ドライアイ?
Yes No
○×Yes No
×
決定木を利用して予測を行う• 各サンプル毎に決定木に従って辿る
K
10
近視?
ドライアイ?
Yes No
○×Yes No
×
ID コンタクト 30才未満 近視 乱視 ドライアイ
K ? NO NO YES YESL ? NO YES NO NO
L
どのような木が望ましい?• 訓練データにおいて正答率が高い
• 訓練データは正しく偏りがないと仮定• 正答率が高い木は,複数存在する可能性がある
• 節点数が少ない• 各節点が有効なテストである
11(A) 良い分割のテスト (B) 良くない分割のテスト
個数
属性TYes No
○ ×
○ × ○ ×
属性T’
Yes No
○ ×
○ × ○ ×
クラス クラス
個数
決定木のコスト• 決定木Tの葉 に対し, をvの決定木T
の深さとする. 決定木のコストを以下で表す.
5.4. 決 定 木 133
X1
X2 X3
X41 0 1
1 0
2!"#: 2 2
3 3
図 5.3 決定木のコスト.角が丸い四角はテストを示し,四角は葉を示す.葉の中の数値 0 か 1 は,その節点に到達したデータの目標属性がそれぞれ 0 と 1 であることを示す.葉の下に書かれた数値は,その葉のコストを示す
Yesと回答したサンプルではクラスが!が,Noと回答したサンプルではクラスが"が多くなっている.このようにクラスを非常に良く分割できるテストを選び決定木を作成した場合,少ないテストの回数,つまり,小さな木で全サンプルを分割することが可能になる.一方,図 5.2(B)にあまり良くないテストの例を示す.図 5.2(B)では,(A)同様!のクラスのサンプルと"のクラスのサンプルが,ほぼ同数存在している.ここで,テスト Tの質問にYesと答えたサンプルと Noと答えたサンプルに分けたところ,Yes側でも No側でもクラスが!のサンプルと "のサンプルの割合に変化が無かった.つまり,テスト Tはクラスの分類に影響を及ぼさなかったことになる.このようなテストを利用すると,決定木の大きさは大きくなり,非効率である.良いテストを利用することで,小さな決定木でサンプルのクラスを分類することが可能である.与えられた決定木T の大きさを表すため,葉vに対しコスト関数として cost(v)を導入しよう.
定義 5.1 決定木 T の葉 v # T に対し,cost(v)を v の決定木 T の深さとする.決定木 T のコストを,以下で表す.
v ∈ T cost(v)
�{cost(x) | x ∈ T is leaf}
12
最適な決定木を求める• 与えられた訓練データを全て満たし、コストが閾値以下の決定木を
作成できるか決定することはNP完全である• NP完全? NP-Completeness• NP = Non-deterministic Polynomial • 現在,多項式オーダーで解けるかどうかは未解決であるが,
NP完全問題の内,もし一つでも多項式オーダーのアルゴリズムで解ける(解けない)事が示されると,他の全てのNP完全問題も多項式オーダーで解ける(解けない)事が言える問題
• 一般には,多項式オーダーでは解けないと思われている• P ≠ NP問題
• NP困難. NP-hardness• NP完全問題から帰着可能.でもクラスNPには含まれない.
• 平たく言って,最適な決定木を求めることは非常に難しい
13
EXACT COVER BY 3-SET• 決定木のコスト最小化がNP完全である証明
• NP完全問題であるEXACT COVER BY 3-SETを,多項式時間で決定木に変形する
• EXACT COVER BY 3-SET
134 第 5章 離散値のクラス分類問題
1 2 3
4 5 6
7 8 9
図 5.4 EXACT COVER BY 3-SETの例.9個ある黒い点がX の要素を,点線は集合 T1, T2, ... を表す.Tn は必ず 3 つの要素を含む.
!{cost(x) | x ! T は葉 }
vの深さは,決定木において根から vに到達するまでのテストの個数と同一である.図 5.3に決定木とコスト (cost)の例を示す.葉のコストは左から 2,2,2,3,3であり,この合計 12が,図 5.3の決定木のコストとなる.与えられた訓練データから,このコストを最小にする決定木を作成したいが,実際には次の定理により,非常に難しい.
定理 5.1 与えたれた訓練データより,コストが閾値以下の決定木を作成するのは NP完全である.
この定理の証明は,NP完全問題である EXACT COVER BY 3-SETを多項式時間で決定木に変換することで行う.まず,EXACT COVER BY 3-SETの説明をする.
定理 5.2 3の倍数の個数だけ元を含む有限集合Xと,3個の元を含むXの部分集合の集まり S = {T1, T2, ...}が与えられたとき, 次の条件を満たす S1 " S
が存在するかしないかを決定するのは NP完全である.(1) #{T |T ! S1} = X(X の任意の元は S1 のいずれか一つに含まれる).
134 第 5章 離散値のクラス分類問題
1 2 3
4 5 6
7 8 9
図 5.4 EXACT COVER BY 3-SETの例.9個ある黒い点がX の要素を,点線は集合 T1, T2, ... を表す.Tn は必ず 3 つの要素を含む.
!{cost(x) | x ! T は葉 }
vの深さは,決定木において根から vに到達するまでのテストの個数と同一である.図 5.3に決定木とコスト (cost)の例を示す.葉のコストは左から 2,2,2,3,3であり,この合計 12が,図 5.3の決定木のコストとなる.与えられた訓練データから,このコストを最小にする決定木を作成したいが,実際には次の定理により,非常に難しい.
定理 5.1 与えたれた訓練データより,コストが閾値以下の決定木を作成するのは NP完全である.
この定理の証明は,NP完全問題である EXACT COVER BY 3-SETを多項式時間で決定木に変換することで行う.まず,EXACT COVER BY 3-SETの説明をする.
定理 5.2 3の倍数の個数だけ元を含む有限集合Xと,3個の元を含むXの部分集合の集まり S = {T1, T2, ...}が与えられたとき, 次の条件を満たす S1 " S
が存在するかしないかを決定するのは NP完全である.(1) #{T |T ! S1} = X(X の任意の元は S1 のいずれか一つに含まれる).5.4. 決 定 木 135
(2) 任意の i != j について Ti " Tj = !(S1 の元は互いに交わらない).
図5.4にEXACT COVER BY 3-SETの例を示す.{{1, 4, 7}, {2, 3, 5}, {6, 8, 9}}で,互いに交わることなくX 全体を包含することができる.EXACT COVERBY 3-SETの問題と決定木の構築を多項式時間の変形で対応づける.証明: 初めにこの問題がNPであること,すなわち非決定的に決定木の根ノードから順番にすべてのテストを選択し,決定木を葉まで全て生成した後に,各々の決定木のコストを計算することでコストが閾値以下の決定木が存在するか否かを判定できることに注意する.
X を正のデータ(クラスが 1)の要素とする.また |X|個のデータを新たに生成し要素 Y = {y1, y2, ..., y|X|}とおき,負のデータ(クラスが 0)とする.いま tをX もしくは Y のデータとするとき,X の元ならば 1を割り当て,Y
の元ならば 0を割り当てる.
t[A] =
!1 t # X
0 t # Y
X 内の 3個の要素のみを含む部分集合 T1, T2, . . .を,自分の要素であるデータに 1を,それ以外には 0を割り当てるテストとみなす.一方,yi を次のように自分自身だけを 1と判定するテストと考える.
t[Ti] =
!1 t # Ti
0 t !# Ti
, t[yi] =
!1 t = yi
0 t != yi
この対応は,表の確保に必要なメモリのみを利用し,多項式時間で変換することが出来る.
Ti や yi をテストとして利用することで,正データと負データを判定する決定木を構成できるか否かを考える.決定木の各条件として,まず正データだけを分離するテストを利用する場合と,負データだけを分離するテストを使う場合の極端な2つのケースを考える.正データを分離してゆく戦略の場合,Tiの集合から決定木を作成できる.例えば,9個の正データを 3つの集合で包含した例を図 5.5(A)に示す.包含する集合より,図 5.5(B)に示す決定木が導かれる.この場合,負データを分離しても不必要にテストを増やし,無駄に決定木のコストを増大させる.正データが
EXACT COVER BY 3-SETの例
14
• 証明• 根から順番にテストを選択して,決定木を作成すると,その木のコストが決定し,閾値以下の木が存在するかどうか判定できる.
• サンプルにはクラスが正(クラスが1)のものと,負(0)のものがあるとする.
• Xを正のサンプルの集合とする.|X|個の負のサンプルの集合Yを新たに生成する.
• tをXもしくはYのサンプルとする時,Xの元なら1を,Yの元なら0
を割り当てる.
Y = {y1, y2, . . . , y|X|}
5.4. 決 定 木 135
(2) 任意の i != j について Ti " Tj = !(S1 の元は互いに交わらない).
図5.4にEXACT COVER BY 3-SETの例を示す.{{1, 4, 7}, {2, 3, 5}, {6, 8, 9}}で,互いに交わることなくX 全体を包含することができる.EXACT COVERBY 3-SETの問題と決定木の構築を多項式時間の変形で対応づける.証明: 初めにこの問題がNPであること,すなわち非決定的に決定木の根ノードから順番にすべてのテストを選択し,決定木を葉まで全て生成した後に,各々の決定木のコストを計算することでコストが閾値以下の決定木が存在するか否かを判定できることに注意する.
X を正のデータ(クラスが 1)の要素とする.また |X|個のデータを新たに生成し要素 Y = {y1, y2, ..., y|X|}とおき,負のデータ(クラスが 0)とする.いま tをX もしくは Y のデータとするとき,X の元ならば 1を割り当て,Y
の元ならば 0を割り当てる.
t[A] =
!1 t # X
0 t # Y
X 内の 3個の要素のみを含む部分集合 T1, T2, . . .を,自分の要素であるデータに 1を,それ以外には 0を割り当てるテストとみなす.一方,yi を次のように自分自身だけを 1と判定するテストと考える.
t[Ti] =
!1 t # Ti
0 t !# Ti
, t[yi] =
!1 t = yi
0 t != yi
この対応は,表の確保に必要なメモリのみを利用し,多項式時間で変換することが出来る.
Ti や yi をテストとして利用することで,正データと負データを判定する決定木を構成できるか否かを考える.決定木の各条件として,まず正データだけを分離するテストを利用する場合と,負データだけを分離するテストを使う場合の極端な2つのケースを考える.正データを分離してゆく戦略の場合,Tiの集合から決定木を作成できる.例えば,9個の正データを 3つの集合で包含した例を図 5.5(A)に示す.包含する集合より,図 5.5(B)に示す決定木が導かれる.この場合,負データを分離しても不必要にテストを増やし,無駄に決定木のコストを増大させる.正データが
• X内の3個の要素のみを含む部分集合 を,自分の要素のデータに1を,それ以外に0を割り当てるテストと見なす.
• を自分自身だけを1と判定するテストと見なす.
• 以上の対応は,表の確保に必要なメモリのみを利用し,多項式時間で変換することが可能.
• これらをテストとして,利用し,正データと負データを判定する決定木が構成できるか否かを考える.
• 戦略は2通り• 正データのみを分離していく• 負データのみを分離していく
T1, T2, . . .
yi
5.4. 決 定 木 135
(2) 任意の i != j について Ti " Tj = !(S1 の元は互いに交わらない).
図5.4にEXACT COVER BY 3-SETの例を示す.{{1, 4, 7}, {2, 3, 5}, {6, 8, 9}}で,互いに交わることなくX 全体を包含することができる.EXACT COVERBY 3-SETの問題と決定木の構築を多項式時間の変形で対応づける.証明: 初めにこの問題がNPであること,すなわち非決定的に決定木の根ノードから順番にすべてのテストを選択し,決定木を葉まで全て生成した後に,各々の決定木のコストを計算することでコストが閾値以下の決定木が存在するか否かを判定できることに注意する.
X を正のデータ(クラスが 1)の要素とする.また |X|個のデータを新たに生成し要素 Y = {y1, y2, ..., y|X|}とおき,負のデータ(クラスが 0)とする.いま tをX もしくは Y のデータとするとき,X の元ならば 1を割り当て,Y
の元ならば 0を割り当てる.
t[A] =
!1 t # X
0 t # Y
X 内の 3個の要素のみを含む部分集合 T1, T2, . . .を,自分の要素であるデータに 1を,それ以外には 0を割り当てるテストとみなす.一方,yi を次のように自分自身だけを 1と判定するテストと考える.
t[Ti] =
!1 t # Ti
0 t !# Ti
, t[yi] =
!1 t = yi
0 t != yi
この対応は,表の確保に必要なメモリのみを利用し,多項式時間で変換することが出来る.
Ti や yi をテストとして利用することで,正データと負データを判定する決定木を構成できるか否かを考える.決定木の各条件として,まず正データだけを分離するテストを利用する場合と,負データだけを分離するテストを使う場合の極端な2つのケースを考える.正データを分離してゆく戦略の場合,Tiの集合から決定木を作成できる.例えば,9個の正データを 3つの集合で包含した例を図 5.5(A)に示す.包含する集合より,図 5.5(B)に示す決定木が導かれる.この場合,負データを分離しても不必要にテストを増やし,無駄に決定木のコストを増大させる.正データが
• 正データの包含と,決定木の対応を下図に示す.• 正データが|X|個あるので,正データを分離する戦略でのコストは
• 負データを分離しても不必要にテストを増やすので考えない• このような決定木が必ず作成できるとは限らないが,存在すればEXACT COVER BY 3-SETが存在する事と同値.136 第 5章 離散値のクラス分類問題
T1 T2 T3: !"#$ : %"#$
(A) !"#$&'()*+
T1
T2
T3
1
1
1 0
(B) '(&,-./0123
図 5.5 9個の正データ(黒丸)の 3つの集合 T1, T2, T3 による包含(A)と,その包含を示す決定木 (B)
|X|個あるので,正データを分離する戦略でコストの下限は
1 + 2 + · · · + |X|3
+|X|3
となる.ただし,このようなコストの決定木が必ず存在するとは限らないが,存在するのであれば,EXACT COVER BY 3-SETが存在することと同値であることに注意する.負データ Y を分離してゆく戦略の場合,yi のデータを,yi のテストを用いて包含するので,|Y | = |X|個のテストを用いる事になる.9個の負データを包含する例を,図 5.6(A)に示す.この場合,正データを分離しても不要に決定木のコストを大きくするので無駄である.よって,負データを包含した決定木のコストは
1 + 2 + · · · + |X| + |X|
となる.2通りの包含を考えたが,決定木のコストは前者の正データの包含の方が必
136 第 5章 離散値のクラス分類問題
T1 T2 T3: !"#$ : %"#$
(A) !"#$&'()*+
T1
T2
T3
1
1
1 0
(B) '(&,-./0123
図 5.5 9個の正データ(黒丸)の 3つの集合 T1, T2, T3 による包含(A)と,その包含を示す決定木 (B)
|X|個あるので,正データを分離する戦略でコストの下限は
1 + 2 + · · · + |X|3
+|X|3
となる.ただし,このようなコストの決定木が必ず存在するとは限らないが,存在するのであれば,EXACT COVER BY 3-SETが存在することと同値であることに注意する.負データ Y を分離してゆく戦略の場合,yi のデータを,yi のテストを用いて包含するので,|Y | = |X|個のテストを用いる事になる.9個の負データを包含する例を,図 5.6(A)に示す.この場合,正データを分離しても不要に決定木のコストを大きくするので無駄である.よって,負データを包含した決定木のコストは
1 + 2 + · · · + |X| + |X|
となる.2通りの包含を考えたが,決定木のコストは前者の正データの包含の方が必
• 負データを分離する場合, のデータを のテストを用いて包含するので|Y| = |X|個のテストを用いる.
• コストは• 以上2つを比べると,正のデータを包含したほうがコストが少ない• 以上より,EXACT COVER BY 3-SETが存在する事と,コストが次式を下回る決定木の存在する事が同値.
yi yi
136 第 5章 離散値のクラス分類問題
T1 T2 T3: !"#$ : %"#$
(A) !"#$&'()*+
T1
T2
T3
1
1
1 0
(B) '(&,-./0123
図 5.5 9個の正データ(黒丸)の 3つの集合 T1, T2, T3 による包含(A)と,その包含を示す決定木 (B)
|X|個あるので,正データを分離する戦略でコストの下限は
1 + 2 + · · · + |X|3
+|X|3
となる.ただし,このようなコストの決定木が必ず存在するとは限らないが,存在するのであれば,EXACT COVER BY 3-SETが存在することと同値であることに注意する.負データ Y を分離してゆく戦略の場合,yi のデータを,yi のテストを用いて包含するので,|Y | = |X|個のテストを用いる事になる.9個の負データを包含する例を,図 5.6(A)に示す.この場合,正データを分離しても不要に決定木のコストを大きくするので無駄である.よって,負データを包含した決定木のコストは
1 + 2 + · · · + |X| + |X|
となる.2通りの包含を考えたが,決定木のコストは前者の正データの包含の方が必
5.4. 決 定 木 137
y1 y2 y3
(A) !"#$%&'()*
y1
y2
y9
0
0
0 1
(B) &'%+,-./012
図 5.6 9個の負データ(白丸)を 9つの集合 y1, ..., yn による包含(A)と,その包含を示す決定木 (B)
ず小さい.また,一般の決定木は Ti と yi をテストとして使用するが,正データは Ti,負データは yi でしか分離できない.そのため,全ての正データもしくは負データどちらかを分離するテストが存在するはずである.すると,そのコストは正のデータだけを分離する戦略のコストの下限
1 + 2 + · · · + |X|3
+|X|3
以上となる.以上より,EXACT COVER BY 3-SETが存在する事と,コストが 1 + 2 + · · · + |X|/3 + |X|/3となる決定木が存在する事は同値.よって,コストが閾値以下の決定木を作成するのは NP完全である. □
5.4.2 貪欲法による決定木の作成コストが閾値以下の木を作成することが,NP完全であることより,コスト最小の決定木は現実的な時間で作成する事が難しい.そこでコストができるだけ小さい決定木を作成するために貪欲法を用いよう.貪欲法とは,与えられたデータから,なるべく良い分割をするテストを探し,
5.4. 決 定 木 137
y1 y2 y3
(A) !"#$%&'()*
y1
y2
y9
0
0
0 1
(B) &'%+,-./012
図 5.6 9個の負データ(白丸)を 9つの集合 y1, ..., yn による包含(A)と,その包含を示す決定木 (B)
ず小さい.また,一般の決定木は Ti と yi をテストとして使用するが,正データは Ti,負データは yi でしか分離できない.そのため,全ての正データもしくは負データどちらかを分離するテストが存在するはずである.すると,そのコストは正のデータだけを分離する戦略のコストの下限
1 + 2 + · · · + |X|3
+|X|3
以上となる.以上より,EXACT COVER BY 3-SETが存在する事と,コストが 1 + 2 + · · · + |X|/3 + |X|/3となる決定木が存在する事は同値.よって,コストが閾値以下の決定木を作成するのは NP完全である. □
5.4.2 貪欲法による決定木の作成コストが閾値以下の木を作成することが,NP完全であることより,コスト最小の決定木は現実的な時間で作成する事が難しい.そこでコストができるだけ小さい決定木を作成するために貪欲法を用いよう.貪欲法とは,与えられたデータから,なるべく良い分割をするテストを探し,
• 問題がNP完全,NP困難であると分かった場合• 完璧な回答を返すことは難しい• 近似的な解法を考える• その近似解法はどの程度のオーダーで実現可能なのか?
• 最適解が経験的に高速に求まる方法を考える.• NP完全,困難問題かどうか分からない場合• どの程度のオーダーで回答可能な問題なのかを考える必要が
有る.• NP完全問題の例• ハミルトン閉路問題,部分和問題
• NP困難問題の例• 巡回セールスマン問題,ナップサック問題
問題がNP完全,NP困難であること
19
貪欲法による決定木の生成• 最低でなくても,コストができるだけ小さい決定木を求めたい• 貪欲法(Greedy Method)• 与えられたデータからなるべく良い分割になる属性を選択
し,それを優先的に採用
属性T
Yes No
○ ×
○ × ○ ×
属性T’
Yes No
○ ×
○ × ○ ×(A) 良い分割の属性 (B) 良くない分割の属性
クラス クラス
個数 個数
○と×に偏りが生まれる ○と×が元の割合に近い 20
良い分割の指標• 良く使われる指標• インフォメーションゲイン(情報利得)• 分割前のエントロピーと,分割後のエントロピーの差
• giniインデックス• カイ2乗値
• この授業では,インフォメーションゲインを利用しよう.• エントロピー• 訓練データ が与えられた時
(c_i は,○か×),エントロピーHは,次式で定義される
• ここで と はそれぞれ,c_iが正と負のサンプルの割合• = 0.5 の時 H(C)は最大値1.1.0もしくは0.0の時,最小
値0
S = {(x1, c1), (x2, c2), . . . , (xN , cN )}
H(C) = −p� log2 p� − p× log2 p×
p� p×p�
21
訓練データのエントロピーの計算• 下記の訓練データが与えられた場合のエントロピーを計算しよう.
•
22
ID C:コンタクト 30才未満 近視 乱視 ドライアイ
A ○ YES YES YES NO
B ○ YES YES NO NO
C ○ NO YES YES NO
D ○ NO YES NO NO
E × YES YES YES YES
F × YES YES NO YES
G × NO NO NO YES
H × NO NO NO NO
I × NO NO NO YES
J × NO NO NO NO
p� =410
, p× =610
H(C) = −p� log2 p� − p× log2 p×
= − 410
log2410− 6
10log2
610
= 0.971
分割表• あるテストによって分割されたサンプルの個数を表にしたもの
23
ID C:コンタクト T1:30才未満 T2:近視 T3:乱視 T4:ドライアイ
A ○ YES YES YES NO
B ○ YES YES NO NO
C ○ NO YES YES NO
D ○ NO YES NO NO
E × YES YES YES YES
F × YES YES NO YES
G × NO NO NO YES
H × NO NO NO NO
I × NO NO NO YES
J × NO NO NO NO
30才未満YES NO
C:コンタクト ○ 2 2 4
× 2 4 6
4 6 10
分割表より分割後のエントロピーを求める
• 全体のエントロピーは個数による重み付き和となるので,
24
T1: 30才未満T1: 30才未満YES NO
C:コンタクト ○ 2 2 4× 2 4 6
4 6 10
H(C | T1 = Yes) = −24
log224− 2
4log2
24
= 1.0
H(C | T1 = No) = −26
log226− 4
6log2
46
= 0.918
H(C | T1) =410
H(C | T1 = Yes) +610
H(C | T1 = No) = 0.951
インフォメーションゲイン• 属性Tによる分割後のインフォメーションゲインI(T)は次式で定義される
• 実際に計算をしてみると,
• 更に,他の属性も計算してみると
• 最もインフォメーションゲインが大きい属性はT2なので,決定木の一番始め(根)はT2で分割をする.• T4も同一のインフォメーションゲインを有するが、ここでは
T2を優先して選択することにする
I(T ) = H(C)−H(C | T )
25
I(T1) = H(C)−H(C | T1) = 0.971− 0.951 = 0.020
I(T2) = 0.420, I(T3) = 0.091, I(T4) = 0.420
• テストT2:近視で分割後,• Yes側にはクラス○が4サンプル,×が2サンプル.• No側にはクラス○が0サンプル,×が4サンプル
• Yes側が完全には分割できていない
Yes No
T2: 近視
ID C:コンタクト
T1:30才未満
T3:乱視
T4:ドライアイ
A ○ YES YES NO
B ○ YES NO NO
C ○ NO YES NO
D ○ NO NO NO
E × YES YES YES
F × YES NO YES
ID C:コンタクト
T1:30才未満
T3:乱視
T4:ドライアイ
G × NO NO YES
H × NO NO NO
I × NO NO YES
J × NO NO NO
再帰的に分割を行う• Yes側を再帰的に分割しよう.
分割前のエントロピー
分割後の分割表とエントロピー
H(C) = −46
log246− 2
6log2
26
= 0.918
Yes No○ 2 2 4× 2 0 2
4 2 6
T1
27
ID C:コンタクト
T1:30才未満
T3:乱視
T4:ドライアイ
A ○ YES YES NO
B ○ YES NO NO
C ○ NO YES NO
D ○ NO NO NO
E × YES YES YES
F × YES NO YES
H(C | T1) =46
�−2
4log2
24− 2
4log2
24
�
26
�−2
2log2
22
�
= 0.667I(T1) = 0.918− 0.667 = 0.251I(T3) = 0, I(T4) = 0.918
よって、T4で分割する
• 最終的に,下記の決定木が求まる.
近視?
ドライアイ?
Yes No
○×Yes No
×
• 利点• 実装が容易
• 次に示す,naive bayesほどではないが・・・• 結果の決定木が見やすい
• この後紹介するクラス分類手法の多くは,結果が直感的に解釈しにくい
• (単純な決定木なら)高速に生成できる• 欠点
• 最適な決定木とは言えない• 正答率が,必ずしも高いとは言えない
• オーバーフィットが起きている• 決定木の大きさが大きくなる傾向に有る
貪欲法による決定木の利点と欠点
29
決定木の枝刈り• 木の大きさを小さくする事で,オーバーフィットを防ぐ• 事前枝刈り
• 決定木を作成している際に,予め指定した閾値を超えた段階で,決定木の伸長を停止する
• ID3 という方法では,決定木の伸長(分割)にはインフォメーションゲインを利用し,分割後,カイ2乗値が一定より小さくなると,伸長を止める.
• 事後枝刈り• 決定木を作成した後,必要の無いと思われる枝を刈る• CART (Classification And Regression Tree)とC4.5が代表例
30
事後枝刈りの例• CART
• 訓練データを2つのグループに分ける• 片方のデータを利用して決定木を作成する• もう片方のデータを利用して,決定木の精度を調べ,精度が下がる所で枝刈りを行う.
• C4.5 • グループの分割は行わない.• 作成された決定木から,統計的な信頼区間を利用して,枝刈りを行う.
• 最近の研究では,• 属性を,より複雑にして木を小さくし,精度を上げる
• 複数の属性の組み合わせを利用する• データを予め複数に分割し,それぞれで決定木を作成.その後,それらの木を互いに見比べて,より良い決定木を作成する(Forest と呼ばれる)
31
レポート(10/21)
• 提出先:[email protected]
• 実行結果だけでなく,途中経過も書く事• 締切:11/2(火)
• データ等は全て• http://togodb.sel.is.ocha.ac.jp/ の「平成22年度講義資料」>「データマイニング2010」から取得できます
32
• iris_train.csvの訓練データに対して,決定木を実行し,iris_test.csv内の30個のテストデータの予測を求めてください.
• iris_test.csvには,実際観測した回答も含まれています(classの列).正答率を求めてください.
• 各自,適当にテストデータを10点作成し,予測を求めてください.• レポートにはテストデータを全て示す事
• iris_train.csvとiris_test.csvを合わせた計150点のデータを作成し,上記の10点のデータに対し改めて予測を行ってください.• data.frameの連結は,iris.new<-rbind(iris.train,
iris.test) で出来ます.
33