2016-11-30 3 views
0

私はID3またはC4.5アルゴリズムを実装しようとしています。次のようにID3バイナリツリーまたは非バイナリツリー?

はID3アルゴリズムによれば、情報利得を計算する:

enter image description here

たとえばこのようなトレーニングデータ: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つの木をテストすると、結果は常に同じになりますか?あるいは、他のものよりも優れているのでしょうか?または、どちらが良いと言うのは難しいですか、単にデータに依存していますか?

答えて

0

あなたが言及したように、1つのツリーは他のバイナリスプリットを複数ウェイ分割します。 2本の木は全く同じではないので、テスト結果も同じではありません。しかし、両方の場合の精度は同様の範囲にある可能性があります。どのモデルが優れているかについての最後の2つの質問について、あなたのデータに依存しています。