Бывает, что randomForest
не возвращает параметр размера узла.Однако существует только три возможных значения: либо оно указано пользователем, либо установлено if (!is.null(y) && !is.factor(y)) 5 else 1
(1 для классификации и 5 для регрессии).Таким образом, мы имеем
getNodesize <- function(x) {
look <- pmatch(names(x$call), "nodesize")
if(any(!is.na(look)))
x$call[!is.na(look)][[1]]
else if (!is.null(x$y) && !is.factor(x$y))
5
else
1
}
rf1 <- randomForest(V1 ~ ., data = train)
getNodesize(rf1)
# [1] 1
rf1 <- randomForest(V1 ~ ., data = train, nodesi = 3)
getNodesize(rf1)
# [1] 3