この記事の読者
キーワード・知ってると理解がしやすい
ベルヌーイ試行
決定木 / Decision Tree #まとめ編
Index
決定木アルゴリズム / Decision Tree
#01 では、決定木の「概要」、「定義と数式化」、「クラスの割り当て」などを記した.
#02 では、「ノード分割規則」について記す.
また、使用する変数や関数、定義は、#01 のものを参照する.
ノード分割規則
各ノード における 次元特徴量空間の最適な分割は、特徴軸ごとに可能な考え得る分割を、
不純度 (impurity)と呼ばれる評価関数で評価し選択する.
ある特徴軸が連続値の属性をもつ場合でも、学習データ数が であれば、たかだか 個の離散的な分割候補点があるだけである.
また、特徴が名義尺度や順序尺度の場合(離散的な場合)は、それらのカテゴリ数の分割候補点があるのみである.
不純度 / Cost
あるノード の分割規則を構成するときは、これらすべての候補点を不純度で評価する.
選ばれる分割点は、ひとつの特徴軸のひとつの分割点のみである.
したがって、決定木で得られる分割領域は、 次元空間の特徴軸に直行する 次元超平面で囲まれた領域となる.
ここで、関数 は、 に対して次の3つの性質を満たせばよい.
代表的な不純度を表す関数として、次のようなものが提案されている.
- 誤差関数
誤り率のイメージ
ジニ係数は次のように解釈することができる.
簡易的に例を用いて考えると
上のジニ係数は、表中の o の部分の組み合わせのみを足し合わすので、
と計算できる. また、全事象から x の部分を引いても同様に計算できる.
ノード で分割規則を作るとき、不純度の減り方が一番大きな分割を選べばよい.
分割を としたとき
が最大となる を、可能な分割候の候補の中から選べばよい.
分割の終焉
不純度を評価関数としてノードの分割を進めていけばよいのであるが、どこで分割を止めればよいのであろうか?
分割を進め、各葉ノードに1つの学習データのみが属するようにすると、バイアスは小さくなるが、木が大きくなり、汎化誤差も大きくなる.
逆に、分割を早い段階でとどめればバイアスが大きくなり、再代入誤り率が大きくなる可能性がある.
このような問題に対する一つの解決策は、葉ノードにはできるだけ一つのクラスの学習データが属するようになるまで(不順度が最小、あるいは十分に小さくなるまで) 木を成長させ、次に、誤り率と木の複雑さで決まる許容範囲まで木を剪定することである.
参考
書籍
- はじめてのパターン認識
- 11 識別器の組み合わせによる性能強化
- 11.2 決定木
- 11.2.2 ノード分割規則
- 11.2 決定木
- 11 識別器の組み合わせによる性能強化