如何在随机森林模型中包含交互项

机器算法验证 r 相互作用 随机森林
2022-03-04 08:17:48

我正在使用randomForestRrandomForest包中的函数进行回归。但是,当我尝试在以下代码中包含交互项时:

library(MASS)
library(randomForest)
Boston_f <- within(Boston, factor(rad))
mdl <- randomForest(lstat ~ rad * . , data = Boston_f)

结果mdl$term确实包括交互,但如果我窥视mdl正在使用的树,

getTree(mdl, 1, T)

我找不到使用交互项的任何拆分变量。

有谁知道如何包含交互术语使用randomForest或其他功能?

1个回答

基于树的模型按顺序考虑变量,这使得它们可以方便地考虑交互而无需指定它们。对预测有用的交互将很容易在足够大的森林中被拾取,因此没有真正需要包含明确的交互项。

如果您认为交互很重要,您可以手动创建交互项(例如,formulamodel.frame函数内定义您的交互项,这将为您的交互项创建新列)。然而,在您的情况下,这将使变量的数量几乎翻倍,因为您正在创建rad与其他所有功能之间的交互,所以这可能是不明智的。

另请参阅在随机森林中包含交互项,它展示了与线性方法相比,随机森林检测交互变量的固有能力。