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