Take Your Time

仕事や研究、コンピューターとの付き合い方

xgb.plot.treeが描けない

今日はR。 xgboostパッケージのxgb.trainで学習させた後は、xgb.plot.treeで決定木/回帰木を描いて見るのが有用であるが、現行のパッケージだと変なふうになってしまう。

R version 3.4.2 (2017-09-28) -- "Short Summer"

rstudio Version 1.1.419

具体的には、木がネットワーク状に書かれてしまうし、文字が黄色地に白文字と視認性最低でおおよそまともにつかない。 検索して見るとgithubにイシューが上がっていて、xgb.plot.treeが使っているDiagrammeRが現行リリースでおかしくなっているとのこと。

github.com

githubにあるとおり対処することでうまく木が書けるようになった。 ポイントはrender = Fにして、render_graphで描いてあげること。

xgb.obj <- params = myparams, data = train, label = mylabel, nround = 100)
graph <- xgb.plot.tree(feature_names = myfeature_names, model = xgb.obj, n_first_tree = 2, render = FALSE)
render_graph(graph)