将xgboost树图输出到R中的图像

时间:2017-03-08 10:17:44

标签: r xgboost

我试图通过树形图来理解xgb模型的树 - xgb.plot.tree().

不幸的是,情节太拥挤,R会话变得太慢。因此,为了更好地放大和分析树,我想将其导出为具有高分辨率的图像。

使用以下代码我只得到一个空白的.png图像。

> png("c:\\path\\tree.png", width = 8000, height = 6000)
> xgb.plot.tree(features, xgb_model, n_first_tree = 2)
> dev.off()
null device 
          1

如何将图表导出到png?

2 个答案:

答案 0 :(得分:4)

gr <- xgb.plot.tree(model=xbg_model, trees=0:1, render=FALSE)
library(DiagrammeR)
export_graph(gr, 'tree.pdf', width=3000, height=4000)

export_graph取决于其他一些软件包。它会通过错误消息通知您是否缺少任何这些软件包并且需要安装。

请注意,recent update to xgb.plot.tree中引入了一些新参数:

  • trees允许选择要绘制的任何特定树或一组树。只有这一点可以帮助你缓慢和拥挤。
  • render设置为FALSE时,它允许获取类dgr_graph的DiagrammeR对象,可以进一步呈现或以各种格式导出。

答案 1 :(得分:0)

以下是如何将此图保存到文件的示例。 请注意,要使export_graph生效,还必须安装DiagrammeRsvgrsvg个包。 library(DiagrammeR) gr <- xgb.plot.tree(model=bst, trees=0:1, render=FALSE) export_graph(gr, 'tree.pdf', width=1500, height=1900) export_graph(gr, 'tree.png', width=1500, height=1900)