wyodrębnianie predyktorów z obiektu ctree
sprawdziłembinary tree
metody klasowe iJak wyodrębnić strukturę drzewa z funkcji ctree? (co było pomocne w zrozumieniu struktury obiektu i gniazd S4), ale nadal nie jest jasne, jak dotrzeć do ostatecznych predyktorówctree
obiekt. Dlarpart
, Użyłbym czegoś takiego
extract_preds <- function( tt ){
leaves <- tt$frame$var == '<leaf>'
as.character( unique( tt$frame$var[ leaves==F ] ) )
}
Czy jest dostępny podobny skrót, czy muszę napisać funkcję rekurencyjną, aby przejść przezctree
obiekt i wyodrębnić predyktory? To, czy regex-fest z wydrukiem? Dzięki.
AKTUALIZACJA: korzystanieBaydoganmkod poniżej. Nadal musisz dowiedzieć się, jak zaktualizowaćres
prawidłowo przez rekursje:
library(party)
ctree_preds <- function(tr,vnames){
res <- character(0)
traverse <- function(treenode,vnames,res){
if(treenode$terminal){
return(res)
} else {
res <- c(res,vnames[treenode$psplit$variableID])
traverse(treenode$left , vnames, res )
traverse(treenode$right, vnames, res )
}
}
traverse(tr,vnames,res)
return(unique(res))
}
airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq,
controls = ctree_control(maxsurrogate = 3))
plot(airct)
ctree_preds(airct@tree,names(airq)[-1])