使用 'randomForest' 包设置的不同变量 training/test
different variables training/test set with 'randomForest' package
假设我有一个 class化问题,想使用 R 中的 randomForest 包来解决这个问题。
在我的训练集中,我想添加一个 third 变量,var3,它是 var1 和 var2 的乘积。因此,训练集将包括
var1、var2、var3 和 class 变量。
然而,这个var3不存在于测试集中,因此,当我想测试时,randomForest会报错我的模特:
random forest Error in eval(expr, envir, enclos) : object var3 not found
有什么办法可以解决这个问题吗?
使用公式接口在模型规格中构建产品:
class_var ~ var1 + var2 + I(var1 * var2)
I
函数意味着将计算乘积的值而不是生成 interaction
的结果,如果变量中的任何一个是字符或因子(并且当它们都是数字时基本上是空操作)。这可能会出现问题:当 var1 和 var2 的值很大时,估计值的误差可能会主导计算。我想 运行 这个可能更安全:
class_var ~ var1 + var2 + I( scale(var1 * var2) )
假设我有一个 class化问题,想使用 R 中的 randomForest 包来解决这个问题。
在我的训练集中,我想添加一个 third 变量,var3,它是 var1 和 var2 的乘积。因此,训练集将包括 var1、var2、var3 和 class 变量。
然而,这个var3不存在于测试集中,因此,当我想测试时,randomForest会报错我的模特:
random forest Error in eval(expr, envir, enclos) : object var3 not found
有什么办法可以解决这个问题吗?
使用公式接口在模型规格中构建产品:
class_var ~ var1 + var2 + I(var1 * var2)
I
函数意味着将计算乘积的值而不是生成 interaction
的结果,如果变量中的任何一个是字符或因子(并且当它们都是数字时基本上是空操作)。这可能会出现问题:当 var1 和 var2 的值很大时,估计值的误差可能会主导计算。我想 运行 这个可能更安全:
class_var ~ var1 + var2 + I( scale(var1 * var2) )