我的理解是随机森林随机选择mtry变量来构建每个决策树。因此,如果mtry = ncol / 3,则每个变量平均将在1/3的树中使用。而2/3的树木将不会使用它们。
但是,如果我知道单个变量可能非常重要,那么手动增加在每棵树中选择此变量的可能性会很好吗?R中的randomForest包可行吗?
我的理解是随机森林随机选择mtry变量来构建每个决策树。因此,如果mtry = ncol / 3,则每个变量平均将在1/3的树中使用。而2/3的树木将不会使用它们。
但是,如果我知道单个变量可能非常重要,那么手动增加在每棵树中选择此变量的可能性会很好吗?R中的randomForest包可行吗?
Answers:
请注意,mtry是在每个分组中随机抽取为候选变量的数量。从这些候选人中,最好的选择是进行分裂。因此,您提到的比例不能完全满足。更重要的变量出现的频率更高,而不太重要的频率则更低。因此,如果变量确实非常重要,则很有可能将其从树中拾取,并且您不需要手动校正。但是有时(很少)有必要在回归中强制某些变量(无论其可能的重要性)的存在。据我所知,R包随机森林不支持这种可能性。但是,如果此变量与其他变量没有相互关系,则可以将此变量作为单项进行普通回归,然后对该普通回归的残差进行随机森林回归。如果您仍然想纠正选择预定变量的可能性,那么可以选择通过下一次编译来修改源代码。
自2015年6月起,R-CRAN上一种新的有前途的RF算法称为“测距仪”具有此功能。通过split.select.weights进行调整:“权重在0到1之间的数字矢量,表示选择要拆分的变量的可能性。”