C4.5
C4.5はID3から多くの改良が施されている。以下にその一部を列挙する。
連続値と離散値の双方の取り扱い
連続値の属性を扱うために、C4.5は閾値を生成し、リストをその閾値以上か以下か、あるいは等しいか否かで分割する。[Quinlan, 96]
属性値が欠損している教師データの取り扱い
C4.5は属性値が欠損している場合「?」とマークすることを許している。欠損した属性値は単にゲインとエントロピーの計算に使われないだけである。
コストが異なる属性の扱い
生成後の枝打ち
C4.5では生成された後、木を遡り役に立たない枝をリーフノードと置き換えることで取り除こうとする。
C4.5はデータを分割するための属性を選択した結果による正規化されたインフォメーション・ゲイン(エントロピーの違い)を調査する。最も大きな正規化されたインフォメーション・ゲインを示す属性は決定を行うために使うものである。アルゴリズムはより小さなサブリストに再帰的に適用される。
このアルゴリズムはベースとなるケースが数個であり、最も一般的なベースケースはリスト内のすべてのサンプルが同じクラスに属する場合である。この場合、そのクラスを選択するように示すリーフノードを決定木を生成する。どの特徴もインフォメーション・ゲインにつながらない場合も起こりうり、この場合C4.5ではクラスの期待値を使ってツリーの上に決定ノードを生成する。クラスのインスタンスが一つも生成されない場合もあり、この場合も期待値を使ってツリーの上に決定ノードを生成する。
アルゴリズムの疑似コードは以下のようになる。