extrayendo predictores del objeto ctree
He comprobadobinary tree
métodos de clase, y¿Cómo extraer la estructura de árbol de la función ctree? (que fue útil para comprender la estructura de objetos S4 y las ranuras), pero aún no está claro cómo llegar a los predictores finales de unctree
objeto. porrpart
, Usaría algo como
extract_preds <- function( tt ){
leaves <- tt$frame$var == '<leaf>'
as.character( unique( tt$frame$var[ leaves==F ] ) )
}
¿Hay un acceso directo similar disponible, o tengo que escribir una función recursiva para atravesar elctree
¿Objetar y extraer los predictores? ¿Eso, o un regex-fest con la salida impresa? Gracias.
ACTUALIZACIÓN: utilizandobaydoganmEl código de abajo. Todavía hay que averiguar cómo actualizarres
correctamente a través de las recursiones:
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])