Я выращиваю дерево классификации с помощью rpart. Мне нужна глубина каждого узла, чтобы идентифицировать узлы, которые более изолированы (более удалены от родительского узла) и узлы, которые ближе к родительскому узлу. Кто-нибудь знает, как я могу получить эту информацию? Заранее спасибо!Глубина узла rpart
0
A
ответ
0
Я не уверен, нужна ли глубина числа родителей или количество детей. Это может помочь использовать метод depth()
из пакета partykit
, который вычисляет количество уровней детей. Вы можете использовать это при принуждении от rpart
до party
, а затем с помощью nodeapply()
:
## packages
library("rpart")
library("partykit")
## rpart tree
rp <- rpart(Species ~ ., data = iris)
## coercion to party
pr <- as.party(rp)
plot(pr)
## query depth of each node
nodeapply(pr, ids = nodeids(pr), depth)
## $`1`
## [1] 2
##
## $`2`
## [1] 0
##
## $`3`
## [1] 1
##
## $`4`
## [1] 0
##
## $`5`
## [1] 0
Вы можете посмотреть на исходный код depth.party()
, чтобы увидеть, как этот цикл рекурсивно по дереву. Аналогичный код можно использовать для определения количества слоев родителей.