2016-03-23 8 views
0

Я выращиваю дерево классификации с помощью rpart. Мне нужна глубина каждого узла, чтобы идентифицировать узлы, которые более изолированы (более удалены от родительского узла) и узлы, которые ближе к родительскому узлу. Кто-нибудь знает, как я могу получить эту информацию? Заранее спасибо!Глубина узла rpart

ответ

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(), чтобы увидеть, как этот цикл рекурсивно по дереву. Аналогичный код можно использовать для определения количества слоев родителей.

 Смежные вопросы

  • Нет связанных вопросов^_^