カテゴリカル予測子(機能)のランダムフォレストの分割を選択するにはどうすればよいですか?


8

数値予測子(機能)のランダムフォレストに最適な分割がどのように選択されるかを理解しています。

数値予測子が並べ替えられ、すべての値についてジニ不純物またはエントロピーが計算され、最適な分割を行うしきい値が選択されます。しかし、特定の順序付けがないため、カテゴリカル予測子にはどのように最良の分割が選択されますか?

回答:


9

通常のバニラ実装は、カテゴリの可能なすべての組み合わせを試みます。これは、これらの組み合わせを整数として表します。これは、選択されたカテゴリーと分割時に除外されるカテゴリーを表します。それは左から右へ行きます。たとえば、「Cat」、「Dog」、「Cow」、「Rat」というクラスの変数がある場合、可能な分割をスイープします。

犬vs残り= 0100(左から右に読んでください)

猫vs残り= 1000

自分だけでなく、

犬と猫vs牛とラット= 1100

牛と猫vs犬とラット= 1010

そして、前述のように、整数を使用してこれを処理し、分割を表します。

library(R.utils)
> intToBin(12)
[1] "1100"

0

森は木の集団法です。だからあなたの質問は変数の分割に関する木のアルゴリズムにもっと基づいていると思います。カテゴリカル予測子には、順序付き因子と順序なし因子の2種類があります。

順序付き因子は数値変数に似ており、ランダムフォレストはカットポイントを検出しますが、後者は以下のように別のアルゴリズムを使用します。

それは、分割として因子の最初のレベルを見つけようとし、モデルを適合させ、損失関数を使用してパフォーマンスを見つけようとします。次に、2番目のレベルを見つけてもう一度当てはめて、パフォーマンスなどを見つけます。最終的には、最高のパフォーマンスに応じて最適な分割レベルの組み合わせを見つけます。

そのため、ツリーモデルまたはランダムフォレストモデルの場合、数値よりも因子を適合させるのに、はるかに長い時間がかかることがわかります。


0

あなたの特徴がカテゴリー的である場合、私の頭に浮かぶ最初のアイデアは、カテゴリーのすべての可能な値に対してバイナリ特徴を作成することです。

したがって、「Samsung、Apple、HTC、Nokia」のみの「携帯電話ブランド」に対応する機能がある場合、4つのカテゴリ(1、0、0、0)、(0、1、 0、0)、(0、0、1、0)および(0、0、0、1)です。このように、しきい値は、奇妙な影響を与えることなく、各分割でブランドであるか他のいずれかであるかを選択します。

お役に立てれば!


0

いくつかのランダムなカテゴリーを選択して、最良の分割を提供するカテゴリーを使用するか、またはカテゴリーのいくつかのランダムな組み合わせを選択して、最良の分割を提供する組み合わせを使用します。

単一のノードでカテゴリの組み合わせを分割することは、複数のノードで単一のカテゴリを分割することでシミュレートできるため、どちらの方法を選択しても問題はないと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.