Существует несоответствие между документацией для R randomForest и выходом метода getTree().R randomForest: значения предсказания для не-терминалов?
documentation утверждает, что значение поля предсказания в getTree() должна быть равна нулю для не-терминальных узлов:
предсказания: предсказание для узла; 0, если узел не терминал
Это тот случай, для метода классификации, однако в методе регрессии есть не равен нулю непрерывные значения:
> library(randomForest)
>
> x <- data.frame(matrix(rnorm(20), nrow=10))
> y <- rnorm(10)
>
> model <- randomForest(x,y)
> getTree(model,k=1)
left daughter right daughter split var split point status prediction
1 2 3 2 0.49239435 -3 -0.1212934
2 4 5 2 0.09046437 -3 -0.4871480
3 0 0 0 0.00000000 -1 1.3421250
4 6 7 2 -0.61841853 -3 -0.2501163
5 0 0 0 0.00000000 -1 -1.1982434
6 0 0 0 0.00000000 -1 -0.8738258
7 0 0 0 0.00000000 -1 0.9973027
ли эти значения прогнозирования для не-терминала узлы, используемые для прогнозирования? Если нет, какова их цель?
На отдельной, но связанной ноте, status
поле не прилипают к документации по методу регрессии либо:
статус: является терминальным узлом (-1) или нет (1)
Как уже отмечалось выше, метод классификации, кажется, следуют документы точно:
> y_bin <- as.factor(y>0)
> model <- randomForest(x,y_bin)
> getTree(model,k=1)
left daughter right daughter split var split point status prediction
1 2 3 2 -0.6184185 1 0
2 0 0 0 0.0000000 -1 1
3 4 5 1 -0.3887568 1 0
4 0 0 0 0.0000000 -1 1
5 0 0 0 0.0000000 -1 2