Lorsque j'ai tracé le résultat de l'arbre de décision à partir du package ctree()
à partir du package party
, la police était trop grande et la boîte, elle aussi, trop grande. Ils chevauchent d'autres nœuds.
Existe-t-il un moyen de personnaliser la sortie de plot()
afin que la zone et la police soient plus petites?
La réponse courte semble être non, vous ne pouvez pas changer la taille de la police, mais il existe quelques bonnes autres options.
Je connais trois solutions possibles. Tout d'abord, vous pouvez modifier d'autres paramètres du tracé pour le rendre plus compact. Deuxièmement, vous pouvez l'écrire dans un fichier graphique et afficher ce fichier. Troisièmement, vous pouvez utiliser une autre implémentation de ctree () dans le paquet partykit, un paquet plus récent proposé par certains des mêmes auteurs.
library(party)
airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq,
controls = ctree_control(maxsurrogate = 3))
plot(airct) #default plot, some crowding with N hidden on leafs
# simpler version of plot
plot(airct, type="simple", # no terminal plots
inner_panel=node_inner(airct,
abbreviate = TRUE, # short variable names
pval = FALSE, # no p-values
id = FALSE), # no id of node
terminal_panel=node_terminal(airct,
abbreviate = TRUE,
digits = 1, # few digits on numbers
fill = c("white"), # make box white not grey
id = FALSE)
)
C'est un peu mieux et on pourrait peut-être l'améliorer davantage. Pour comprendre ces détails, j’ai à l’origine créé class(airct)
qui a renvoyé "BinaryTree". Armé de cette information, j'ai commencé à lire ?plot.BinaryTree
Une deuxième solution simple consiste à écrire le tracé dans un fichier, puis à visualiser le fichier. Vous devrez peut-être jouer avec les paramètres pour trouver le meilleur ajustement.
png("airct.png", res=80, height=800, width=1600)
plot(airct)
dev.off()
Enfin, vous pouvez utiliser une nouvelle implémentation du paquet parti par le même auteur, qui n'est pas encore terminée. À ce stade (décembre 2012), la seule fonction qu'ils ont refaite est ctree()
. Cette version vous permet de changer la taille de la police.
library(partykit)
airct <- ctree(Ozone ~ ., data = airq)
class(airct) # different class from before
# "constparty" "party"
plot(airct, gp = gpar(fontsize = 6), # font size changed to 6
inner_panel=node_inner,
ip_args=list(
abbreviate = TRUE,
id = FALSE)
)
Ici, j’ai laissé les feuilles dans leur réglage par défaut car je n’ai franchement jamais trouvé comment le faire fonctionner comme je le voulais. Je soupçonne que cela a à voir avec le fait que le paquet est incomplet (à partir de décembre 2012). Vous pouvez en savoir plus sur la méthode de tracé commençant par ?plot.party
Une autre option (qui ne change pas ce que vous voulez, mais qui résout potentiellement le problème sous-jacent) consiste à modifier la taille du personnage lui-même, comme je l'ai appris dans ma classe pour mon travail.
Remplacez le r ci-dessous:
{r}
avec:
{r, fig.width=X, fig.height=Y}
où le X et le Y doivent être remplacés par des chiffres choisis par vous en fonction de la taille qui vous convient le mieux.
Ce site Web , parle de le faire de manière plus détaillée et universelle dans tout le document.