決定木があります。この決定木にいくつかの入力値を与えます。その後、ディシジョン ツリーは値を返します。
入力値は、「子供の数」、「年齢」などです。デシジョン ツリーは、(たとえば) 家族が所有している車の数などを示す特定の値を返すことができます。
この決定木 (if-then ステートメントに変換された場合) は次のようになります。
int i=0;
if (ownedHouses==0)
{
if (numberOfChildren==4)
{
if (ageFather==39)
{
if (incomeFamily==40000)
{
if (carsAlreadyCrashed==1)
{
i=3;
}
else
{
if (carsAlreadyCrashed==2)
{
if (insurancePaysForCrashes==1)
{
i=5;
}
}
else
{
i=4;
}
}
else
{
i=11;
}
}
}
else
{
i=2;
}
}
else
{
i=9;
}
}
else
{
i=22;
}
else
{
i=8;
}
これはほんの一例です。実際には、結果の if-then ステートメントは非常に巨大になります。データを解析してそのような if-then を作成することはできますが、ソフトウェアでそのような大きな if-then ループを使用することはできませんでした。
したがって、決定木をソフトウェアに統合する別の方法を探しています。
デシジョン ツリー データ (提供される形式に関係なく...) が実行時に解析され、そこからルート、ノード、およびリーフを持つクラスが作成されるアプローチを見てきました。
私の目的では、これは十分に高速ではありません。
他に考えがある人はいますか?
お手伝いありがとう。
編集: 意味をより明確にするために、一部の値を実際の値に変更しました。