RのrandomForestパッケージは、32レベルを超える係数を処理できません。32レベルを超えると、エラーメッセージが表示されます。
32を超えるカテゴリを持つカテゴリカル予測子を処理できません。
しかし、私が持っているデータにはいくつかの要因があります。それらの一部には1000以上のレベルがあり、一部には100以上があります。52の米国の「状態」もあります。
だから、ここに私の質問があります。
なぜそのような制限があるのですか?randomForestは、単純な場合でも実行を拒否します。
> d <- data.frame(x=factor(1:50), y=1:50) > randomForest(y ~ x, data=d) Error in randomForest.default(m, y, ...) : Can not handle categorical predictors with more than 32 categories.
単にメモリ制限が原因である場合、scikit学習のrandomForeestRegressorは32を超えるレベルでどのように実行できますか?
この問題を処理する最良の方法は何ですか?X1、X2、...、X50の独立変数があり、Yが従属変数であるとします。そして、X1、X2、X3には32を超えるレベルがあるとします。私は何をすべきか?
私が考えているのは、距離がYの差として定義されるX1、X2、X3のそれぞれに対してクラスタリングアルゴリズムを実行することです。3つの問題のある変数があるので、3つのクラスタリングを実行します。そして、各クラスタリングで、同様のレベルを見つけることができればと思います。そして、それらをマージします。
これはどのように聞こえますか?