extraindo preditores do objeto ctree
Eu verifiqueibinary tree
métodos de classe eComo extrair estrutura de árvore da função ctree? (o que foi útil para entender a estrutura e os slots do objeto S4), mas ainda não está claro como chegar aos preditores finais de umctree
objeto. Pararpart
, Eu usaria algo como
extract_preds <- function( tt ){
leaves <- tt$frame$var == '<leaf>'
as.character( unique( tt$frame$var[ leaves==F ] ) )
}
Existe um atalho semelhante disponível, ou eu tenho que escrever uma função recursiva para atravessar octree
objeto e extrair os preditores? Isso, ou um regex-fest com a saída de impressão? Obrigado.
ATUALIZAÇÃO: usandoBaydoganmcódigo abaixo. Ainda tem que descobrir como atualizarres
corretamente através das recursões:
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])