我已经在R中使用随机森林进行分类,其中相关列具有分类值(例如0或1)。例如,对于虹膜数据库,我们可以使用随机森林根据物种对数据进行分类,如下所示:
myRF <- randomForest(Species ~ ., data=iris, importance=TRUE,proximity=TRUE)
这是有道理的,因为Species只能采用几个分类值。问题是,如果物种可以从1到100取值,我想将数据分为两类:值大于50的那些和值小于50的那些?
当然,我可以添加另一个值为1或0的列,具体取决于Species,然后我对最后一列而不是Species进行分类,但有没有办法直接告诉R我们要对数据进行分类分为两类:物种少于50的类别和另一类大于50的类别? (假设物种的新假设值)?
谢谢
答案 0 :(得分:1)
myRf ~ randomForest(Species < 50 ~ ., ...)
是
与定义包含Species
是否小于50的新变量没有什么不同,但是避免修改数据集;
只有Species
是连续的而不是分类的变量才有意义(即,以这种方式比较物种数量是有意义的。)
在更一般的情况下,您想要预测一个因子将采用其中一个值的子集,您可以使用
randomForest(y.fac %in% c("level1","level2",...) ~ .....)