我试图通过树形图来理解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?
答案 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
生效,还必须安装DiagrammeRsvg
和rsvg
个包。
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)