随机森林:预测器有超过 53 个类别?

机器算法验证 r 机器学习 随机森林
2022-03-14 19:50:02

当我们想将 R 中的随机森林函数应用于超过 53 个类别的预测器时,解决方案是什么?

> RandomForestPrediction=function(alpha){
+   d = sort(sample(nrow(MPS), nrow(MPS)*alpha))
+   train<-MPS[d,]
+   test<-MPS[-d,]
+   myNtree=1000
+   myMtry=5
+   myImportance=TRUE
+   mod2 = randomForest(factor(m.Decision)~.,data=train,tree=myNtree,mtry=myMtry,importance=myImportance)
+   fitted=predict(mod2,test,type="response")
+   return(table(fitted,test$m.Decision))
+ }
> RandomForestPrediction(0.7)
Error in randomForest.default(m, y, ...) : 
Can not handle categorical predictors with more than 53 categories.
1个回答

在这个 youtube 视频中,Jeremy Howard 解释了他处理这个问题的技术,他根据每个级别的观察次数将变量分成两组:

  • 设置 1:或( + 预测值)的水平Nobs>10025<Nobs<100
  • 第 2 组:其余所有。

我应该提一下,我是 Random Forest 的新手,幸运的是我两天前看过这个视频。即使这种技术对我有意义(分成两组具有不同的重要性)我无法解释这些阈值的选择(这显然有点武断并且取决于数据集),以及在什么时候可以考虑一个级别具有光荣的预测价值。