回答:
通常のバニラ実装は、カテゴリの可能なすべての組み合わせを試みます。これは、これらの組み合わせを整数として表します。これは、選択されたカテゴリーと分割時に除外されるカテゴリーを表します。それは左から右へ行きます。たとえば、「Cat」、「Dog」、「Cow」、「Rat」というクラスの変数がある場合、可能な分割をスイープします。
犬vs残り= 0100(左から右に読んでください)
猫vs残り= 1000
自分だけでなく、
犬と猫vs牛とラット= 1100
牛と猫vs犬とラット= 1010
そして、前述のように、整数を使用してこれを処理し、分割を表します。
library(R.utils)
> intToBin(12)
[1] "1100"
森は木の集団法です。だからあなたの質問は変数の分割に関する木のアルゴリズムにもっと基づいていると思います。カテゴリカル予測子には、順序付き因子と順序なし因子の2種類があります。
順序付き因子は数値変数に似ており、ランダムフォレストはカットポイントを検出しますが、後者は以下のように別のアルゴリズムを使用します。
それは、分割として因子の最初のレベルを見つけようとし、モデルを適合させ、損失関数を使用してパフォーマンスを見つけようとします。次に、2番目のレベルを見つけてもう一度当てはめて、パフォーマンスなどを見つけます。最終的には、最高のパフォーマンスに応じて最適な分割レベルの組み合わせを見つけます。
そのため、ツリーモデルまたはランダムフォレストモデルの場合、数値よりも因子を適合させるのに、はるかに長い時間がかかることがわかります。