決定木とは

/機械学習

決定木とは

決定木とは、分類や意思決定を多段階に繰り返して行う場合、その各段の分岐を階層的に樹形図で表したものです。

分岐の条件を入力変数($x_i$)、分岐の結果を目的変数($t_j$)と呼びます。ここで、独立変数の数を $m$、独立変数のセット(データ)の数を $n$ とします。

$$t_j=t_j(x_1,x_2,\cdots,x_i,\cdots,x_m) , j=1,2,\cdots,n$$

また、決定木の始点を根ノード、端点を葉ノードと呼びます。決定木が完成した状態では、1つの葉ノードに含まれるの全てのデータは同一の目的変数を持ちます。

この目的変数が数値型か分類型かにより、決定木は2つの種類に分かれます。

種類 目的変数
回帰木 数値型 価格の見積り、所要日数、飛距離など
分類木 分類型 合格/不合格、勝ち/負け、実施/中止など

以下の説明は、分類木に限定し、入力変数を「属性」、目的変数を「クラス」と呼ぶことにします。

学習アルゴリズム

決定木の学習アルゴリズムは以下になります。

  1. 根ノードに対し属性を選択し、子ノードに分岐させる
  2. その子ノードを親ノードとして、次の属性を選択し、子コードに分岐させる
  3. 全ての子ノードが葉ノードとなるまで 2. を繰り返す

決定木の根ノードでは、全てのデータ(全てのクラス)が含まれるため、最も多様性が大きくなりいます。また、葉ノードでは、そこに含まれるデータは全て同じクラスに属するため、最も多様性が小さくなります。

従って、分岐させる際に、多様性を最も下げる属性を選択することが、最も効率の良い学習アルゴリズムを作ることにつながります。決定木の学習アルゴリズムと、それに採用されている多様性の指数は以下になります。

学習アルゴリズム 多様性指数
CART(Classification and Regression Tree) ジニ係数
ID3(Iterative Dichotomiser 3) 情報利得
C4.5 / C5 情報利得比

次のような、天候の条件によってゴルフの実施/中止を判断する例で、各多様性指数を計算してみます。

ゴルフ場の例

この例では、データの数($n$)は14個、属性の数($m$)は4個で、それぞれ天気(晴・曇・雨)、気温(高・中・低)、風力(強・弱)、クラスはゴルフの 「○:実施」または「 ×:中止」です。

ジニ係数

ジニ係数とは、経済の分野で所得格差を表すために使われていますが、多様性指標では、任意の2つのデータが異なるクラスに属する確率として解釈することができます。

ゴルフの例では、2つのデータを任意に選択して「○×」または「×○」になる確率がデータ集合の多様性を表すと考えます。「○」になる確率を $p_\circ$、「×」になる確率を $p_\times$ とすると($p_\circ+p_\times=1$)、ジニ係数 $G$ は以下で表されます。

$$G=1-(p_\circ^2+p_\times^2)=2p_\circ(1-p_\circ)$$

ジニ係数が小さければ多様性も小さくなり、ジニ係数を指標として効率的な決定木を構築することができます。

根ノードのジニ係数

根ノードのジニ係数(G_0)は、「○」は9個、「×」が5個であり、$p_\circ=9/14$、$p_\times=5/14$ であるため以下になります。

$$G_0=1-\Big(\frac{9^2}{14^2}+\frac{5^2}{14^2}\Big)\cong0.459$$

子ノードのジニ係数

天気・気温・風力で分岐された場合のジニ係数 $G_1$ は以下になります。

属性 $p_\circ$ $p_\times$ $G_1$ $G_0-G_1$
天気 2/5 3/5 0.480 0.343 0.116
4/4 0/4 0.000
3/5 2/5 0.480
気温 2/4 2/4 0.500 0.440 0.019
4/6 2/6 0.444
3/4 1/4 0.375
風力 3/6 3/6 0.500 0.429 0.031
6/8 2/8 0.375

例えば、天気を属性に選んだ場合、ジニ係数を計算すると、

  • 晴:$G_{11}=1-\frac{2^2}{5^2}-\frac{3^2}{5^2}\cong0.480$
  • 曇:$G_{12}=1-\frac{4^2}{4^2}-\frac{0^2}{4^2}=0$
  • 雨:$G_{13}=1-\frac{3^2}{5^2}-\frac{2^2}{5^2}\cong0.480$

であり、晴・曇・雨は一定の確率で現れるため、全体のジニ係数はこの平均で求められるため、

$$G_1=\frac{5}{14}G_{11}+\frac{4}{14}G_{12}+\frac{5}{14}G_{13}\cong0.343$$$$G_0-G_1\cong0.116$$

同様に気温と風力を選んだ場合でジニ係数を計算すると、気温で分類した場合の多様性が最も小さくなる(最適な選択肢)であることが分かります。

情報利得

ID3の場合は多様性をエントロピー($H$)で表し、エントロピーの変化分が情報利得となります。エントロピーは、事象の発生確率($p_i$)により以下で定義されます。

$$H=-\sum_ip_i\log_2{p_i}$$

分岐前のエントロピーを $H_0$ 、分岐後を $H_1$ とすると、情報利得 $I$ は以下で求められます。

$$I=H_0-H_1$$

この情報利得を最大にする属性を選択することで、効率的な決定木を構築することができます。

根ノードのエントロピー

ゴルフの例では、根ノードのエントロピー($H_0$)は、「○」は9個、「×」が5個であり、$p_\circ=9/14$、$p_\times=5/14$ であるため以下になります。

$$H_0=-\frac{9}{14}\log_2{\frac{9}{14}}-\frac{5}{14}\log_2{\frac{5}{14}}\cong0.940$$

子ノードのエントロピー

天気・気温・風力で分岐された場合のエントロピー $H_1$ は以下になります。

属性 $p_\circ$ $p_\times$ $H_1$ $H_0-H_1$
天気 2/5 3/5 0.971 0.694 0.247
4/4 0/4 0.000
3/5 2/5 0.971
気温 2/4 2/4 1.000 0.911 0.029
4/6 2/6 0.918
3/4 1/4 0.811
風力 3/6 3/6 1.000 0.892 0.048
6/8 2/8 0.811

例えば、天気を属性に選んだ場合、エントロピーを計算すると、

  • 晴:$H_{11}=-\frac{2}{5}\log_2{\frac{2}{5}}-\frac{3}{5}\log_2{\frac{3}{5}}\cong0.971$
  • 曇:$H_{12}=-\frac{4}{4}\log_2{\frac{4}{4}}-\frac{0}{4}\log_2{\frac{0}{4}}=0$
  • 雨:$H_{13}=-\frac{3}{5}\log_2{\frac{3}{5}}-\frac{2}{5}\log_2{\frac{2}{5}}\cong0.971$

であり、晴・曇・雨は一定の確率で現れるため、全体のエントロピーはこの平均で求められるため、

$$H_1=\frac{5}{14}H_{11}+\frac{4}{14}H_{12}+\frac{5}{14}H_{13}\cong0.694$$$$I=H_0-H_1\cong0.247$$

同様に気温と風力を選んだ場合でエントロピーを計算すると、気温で分類した場合のエントロピーが最も小さい(情報利得が大きい)ことが分かります。

 

数学
解析学、代数学、幾何学、統計学、論理・基礎論、情報・暗号、機械学習、金融・ゲーム理論、高校数学
散策路TOP
数学、応用数学、古典物理、量子力学、物性論、電子工学、IT、力学、電磁気学、熱・統計力学、連続体力学、解析学、代数学、幾何学、統計学、論理・基礎論、プラズマ物理、量子コンピュータ、情報・暗号、機械学習、金融・ゲーム理論

Wikipedia

 

タイトルとURLをコピーしました