要件
組の学習データ
が与えられているとします。
番目の学習データの特徴ベクトルは
と表されます。
クラス存在すると想定し、
とします。このとき
です。
この学習データを使った分類木の学習アルゴリズムの一種CARTを以下で説明します。
不純度
各ノードに番号を割り当てます。
根ノードの番号をとします。
ノード番号のノードに割り当てられる学習データ番号の集合を
と定義します。
の中でクラスが
であるデータの割合を
と定義すると、以下の式で表せます。
の学習データにおける不純度を
で表すことにします。
はエントロピー
やGini関数
などが利用されます。
CARTアルゴリズムではGini関数が用いられることが多いようです。
の時のエントロピーとGini関数のグラフを以下に示します。

が均等に存在する
のとき最大値をとり、
のみが存在する
または
のみが存在する
のとき最小値を取ることが分かります。
のときは、すべての
に対して、
の最大になります。
ノードの分岐
番号のノードに対して、属性番号
と閾値
の選択基準について考えます。
の中で
を満たすデータの割合を
とすると、以下の式で表せます。
を満たさないデータの割合を
とします。
このとき、分割指数を平均的な不純度の減少として、次式で定義します。
この分割指数が大きいほど、分割することによって不純度が大きく減少します。
不純度がエントロピーの場合の分割指数は相互情報量または情報利得と呼ばれます。
また、不純度がGini関数の場合、Gini係数またはGiniインデックスと呼ばれます。
ここで、番号のノードに対して
とします。
番号のノードでは、属性番号
で閾値
を選べばよいことが分かります。
分岐させるノードの選択基準について考えます。
は
データあたりの不純度の減少量を表しているので、
ノードに割り当てられた学習データの割合を
に乗じることによって、ノード
の分岐選択基準
を得ます。
※の分母
は不要に見えますが、分岐選択基準にある閾値を設ける場合に必要なのだと思います。
CARTアルゴリズム
を葉ノードの集合とし、初期値は根ノードだけからなる木とします。
また、分類木の総ノード数をとします。
1: 根ノードの番号をとし、初期値として
とする。
根ノードの学習データ番号の集合をと設定する。
また、として、式
を計算し、
とする。
2: ノードを
として選び、ノードに対して以下のようなデータ集合を持つ
の子ノード
を作成する。
と更新する。また次式で
を更新する。
3: として、式
を計算し、
とする。
同様に として、式
を計算し、
とする。
4: もし、
が成り立つならば、すべてのに対して次式のクラス
を割り当てる分類器を出力して、終了する。
そうでなければ、2へ戻る。
の
は学習データの数の
程度に設定されることが多いようです。
偉人の名言

食欲がないのに食べても健康に悪いように、
やる気がないのに勉強しても記憶力が損なわれ、記憶したことは保存されない。
レオナルド・ダ・ヴィンチ
動画
なし