私はID3またはC4.5アルゴリズムを実装しようとしています。次のようにID3バイナリツリーまたは非バイナリツリー?
はID3アルゴリズムによれば、情報利得を計算する:
たとえばこのようなトレーニングデータ:IG(credit) = H(D) - P(credit==normal)H(D|credit==normal) - P(credit==bad)H(D|credit==bad) - P(credit==excellent)H(D|credit==excellent)
:
credit age label
normal young yes
normal old yes
bad old no
excellent middle yes
クレジットのIGは、これを好むべきです
スプリットするのに最適な機能としてクレジットを選択した場合、以下の手順では、属性「クレジット」を再度考慮する。
しかし:私も、このように実装いくつかのいずれかを参照してください。 IG(credit=normal) = H(D) - P(credit==normal)H(D|credit==normal) - P(credit ~= normal)H(D|credit ~= normal)
私はクレジットを選択した場合==最高の機能を分割するよう、以下の手順で、私は再び属性「信用」を検討する通常、クレジット== "悪い"のようなものです。
異なるIG計算結果のツリーは、1つは非バイナリツリーであり、もう1つはバイナリツリーです。
私の質問は、2本の木が同等かどうかです。 2つの木をテストすると、結果は常に同じになりますか?あるいは、他のものよりも優れているのでしょうか?または、どちらが良いと言うのは難しいですか、単にデータに依存していますか?