要件
組の学習データが与えられているとします。
番目の学習データの特徴ベクトルはと表されます。
クラス存在すると想定し、とします。このときです。
この学習データを使った分類木の学習アルゴリズムの一種CARTを以下で説明します。
不純度
各ノードに番号を割り当てます。
根ノードの番号をとします。
ノード番号のノードに割り当てられる学習データ番号の集合をと定義します。
の中でクラスがであるデータの割合をと定義すると、以下の式で表せます。
の学習データにおける不純度をで表すことにします。
はエントロピー
やGini関数
などが利用されます。
CARTアルゴリズムではGini関数が用いられることが多いようです。
の時のエントロピーとGini関数のグラフを以下に示します。
が均等に存在するのとき最大値をとり、
のみが存在するまたはのみが存在するのとき最小値を取ることが分かります。
のときは、すべてのに対して、の最大になります。
ノードの分岐
番号のノードに対して、属性番号と閾値の選択基準について考えます。
の中でを満たすデータの割合をとすると、以下の式で表せます。
を満たさないデータの割合をとします。
このとき、分割指数を平均的な不純度の減少として、次式で定義します。
この分割指数が大きいほど、分割することによって不純度が大きく減少します。
不純度がエントロピーの場合の分割指数は相互情報量または情報利得と呼ばれます。
また、不純度がGini関数の場合、Gini係数またはGiniインデックスと呼ばれます。
ここで、番号のノードに対して
とします。
番号のノードでは、属性番号で閾値を選べばよいことが分かります。
分岐させるノードの選択基準について考えます。
はデータあたりの不純度の減少量を表しているので、
ノードに割り当てられた学習データの割合をに乗じることによって、ノードの分岐選択基準
を得ます。
※の分母は不要に見えますが、分岐選択基準にある閾値を設ける場合に必要なのだと思います。
CARTアルゴリズム
を葉ノードの集合とし、初期値は根ノードだけからなる木とします。
また、分類木の総ノード数をとします。
1: 根ノードの番号をとし、初期値としてとする。
根ノードの学習データ番号の集合をと設定する。
また、として、式を計算し、とする。
2: ノードを
として選び、ノードに対して以下のようなデータ集合を持つの子ノードを作成する。
と更新する。また次式でを更新する。
3: として、式を計算し、とする。
同様に として、式を計算し、とする。
4: もし、
が成り立つならば、すべてのに対して次式のクラスを割り当てる分類器を出力して、終了する。
そうでなければ、2へ戻る。
のは学習データの数の程度に設定されることが多いようです。
偉人の名言
食欲がないのに食べても健康に悪いように、
やる気がないのに勉強しても記憶力が損なわれ、記憶したことは保存されない。
レオナルド・ダ・ヴィンチ
動画
なし