R 使用'的不同变量训练/测试集;随机森林&x27;包裹

R 使用'的不同变量训练/测试集;随机森林&x27;包裹,r,random-forest,R,Random Forest,假设我有一个分类问题,想用R中的randomForest包来解决这个问题 在我的训练集中,我想添加第三个变量,var3,它是var1和var2的乘积。因此,培训集将包括 var1、var2、var3和类变量 但是,该var3在测试集中不存在,因此,当我想要测试我的模型时,randomForest将给出一个错误: random forest Error in eval(expr, envir, enclos) : object var3 not found 有没有办法绕过这个问题 使用公式界面在

假设我有一个分类问题,想用R中的randomForest包来解决这个问题

在我的训练集中,我想添加第三个变量,var3,它是var1和var2的乘积。因此,培训集将包括 var1、var2、var3和类变量

但是,该var3在测试集中不存在,因此,当我想要测试我的模型时,randomForest将给出一个错误:

random forest Error in eval(expr, envir, enclos) : object var3 not found

有没有办法绕过这个问题

使用公式界面在模型规范中构建产品:

    class_var ~ var1 + var2 + I(var1 * var2)
I
函数意味着将计算乘积的值,而不是产生
交互作用的结果,如果其中一个变量是字符或因子,则该结果不是数字乘积(当它们都是数字时,基本上是无运算)。这可能会有问题:当var1和var2的值较大时,估计值周围的误差可能会主导计算。我认为这样做可能更安全:

  class_var ~ var1 + var2 + I( scale(var1 * var2) )

工作起来很有魅力,谢谢:)我玩过了,如果你想选一个专栏,这个也可以:class_var~var1+var2+I(df$varx)在这个过程的哪个阶段?当
df
是预期的评估框架时,似乎这样做只会使这更复杂。只需使用:
class\u var~var1+var2+varx
感谢您的跟进!这也在培训过程中。当我执行您建议的操作时,我再次得到错误(未找到objectvarx),因为这个变量在测试集中不存在。但是,添加交互我没有发现错误。我不理解,但这听起来好像没什么关系,因为你有一个有效的过程。我可能解释错了呵呵。在这种情况下,我假设
varx
是我想要用来训练随机森林模型的变量。但该变量不包括在(单独的)测试集中。添加交互功能似乎可以做到这一点!