0

我已经在 R 中使用随机森林进行分类,其中相关列具有分类值(例如 0 或 1)。例如,对于 iris 数据库,我们可以使用随机森林根据物种对数据进行分类,如下所示:

myRF <- randomForest(Species ~ ., data=iris, importance=TRUE,proximity=TRUE)

这是有道理的,因为 Species 只能采用几个分类值。问题是 Species 是否可以取 1 到 100 之间的值,我想将数据分为两类:值大于 50 的值和值小于 50 的值?

当然,我可以根据 Species 添加另一列其值为 1 或 0 的列,然后我对最后一列而不是 Species 进行分类,但是有没有办法直接告诉 R 我们要将数据分类为 2 个类别: Species 小于 50 的类别和大于 50 的类别?(假设物种的新假设值)?

谢谢

4

1 回答 1

1
myRf ~ randomForest(Species < 50 ~ ., ...)

这是

  1. 确实与定义一个包含是否Species小于 50 的新变量没有什么不同,但避免修改您的数据集;

  2. 只有当是一个连续变量而不是分类变量时才有意义Species(即,以这种方式比较物种数量是有意义的)。

在更一般的情况下,您希望预测一个因子将采用值子集之一,您可以使用

randomForest(y.fac %in% c("level1","level2",...) ~ .....)
于 2013-06-22T12:10:51.500 回答