randomForest(x, y=NULL, xtest=NULL, ytest=NULL, ntree=500,
mtry=if (!is.null(y) && !is.factor(y))
max(floor(ncol(x)/3), 1) else floor(sqrt(ncol(x))),
replace=TRUE, classwt=NULL, cutoff, strata,
sampsize = if (replace) nrow(x) else ceiling(.632*nrow(x)),
nodesize = if (!is.null(y) && !is.factor(y)) 5 else 1,
maxnodes = NULL,
importance=FALSE, localImp=FALSE, nPerm=1,
proximity, oob.prox=proximity,
norm.votes=TRUE, do.trace=FALSE,
keep.forest=!is.null(y) && is.null(xtest), corr.bias=FALSE,
keep.inbag=FALSE, ...)
在nodesize中,TRUE
条件为该if
语句是如果y
存在且不是一个因素,或用于分类分类变量。因此FALSE
条件是nodesize=1
。所以它将继续分裂你的预测变量,直到每个节点都是纯粹的,而不管树数是多少。由于建造树木时的随机性,它们会略有不同。
分类,'randomForest'完全构建树,直到每个节点有5个观察值。然后它将大多数的类作为预测。 – Zelazny7
节点的总数将取决于构建树时“randomForest”分割的次数。正如@ Zelazny7所提到的,每个“叶子”最终会有5个观测值。 –
至于控制节点数量的参数,它取决于两个参数,'maxnodes'和'ntree' – Zelazny7