树模型的可视化

catboost

训练好模型之后,调用plot_tree可以具体可视化森林中具体树的构成:

model.plot_tree(tree_idx=171)

但,model.plot_tree(tree_idx=171)是Digraph,如果print出来就是下面的内容:

digraph {
	0 [label="8, value>1.156" color=black shape=ellipse]
	1 [label="54, value>0.00136387" color=black shape=ellipse]
	0 -> 1 [label=No]
	2 [label="54, value>0.00136387" color=black shape=ellipse]
	0 -> 2 [label=Yes]
	3 [label="38, value>1.00535" color=black shape=ellipse]
	1 -> 3 [label=No]
	4 [label="38, value>1.00535" color=black shape=ellipse]
	1 -> 4 [label=Yes]
	5 [label="38, value>1.00535" color=black shape=ellipse]
	2 -> 5 [label=No]
	6 [label="38, value>1.00535" color=black shape=ellipse]
	2 -> 6 [label=Yes]
	7 [label="val = 0.000
" color=red shape=rect]
	3 -> 7 [label=No]
	8 [label="val = -2919.138
" color=red shape=rect]
	3 -> 8 [label=Yes]
	9 [label="val = -61941.777
" color=red shape=rect]
	4 -> 9 [label=No]
	10 [label="val = -60960.785
" color=red shape=rect]
	4 -> 10 [label=Yes]
	11 [label="val = 0.000
" color=red shape=rect]
	5 -> 11 [label=No]
	12 [label="val = 48638.031
" color=red shape=rect]
	5 -> 12 [label=Yes]
	13 [label="val = 53809.523
" color=red shape=rect]
	6 -> 13 [label=No]
	14 [label="val = -13664.988
" color=red shape=rect]
	6 -> 14 [label=Yes]
}

我们可以借助网上开源的工具进行可视化:Graphviz Visual Editor

树模型的可视化_第1张图片

也可以利用render函数进行树的保存,并生成PDF文件:

model.plot_tree(tree_idx=171).render('tree171.gv',view=False)

 他会在指定目录生成.gv和.pdf文件,gv文件内容为树结构的搭建,pdf为具体可视化后的树结构。

树模型的可视化_第2张图片

随机森林或决策树

我们可以通过

model.estimators_[0]

获得单棵树,类似这种:

树模型的可视化_第3张图片

由于tree没有catboost类似接口,这时候是不能直接plot_tree的,可借助sklearn.tree.export_graphviz()函数将tree保存为文件:

from sklearn.tree import export_graphviz
export_graphviz(tree_sample, out_file='tree.gv')

 然后利用cmd,在tree.gv路径下将其转化为pdf或png格式的文件,便于可视化:

dot -Tpdf .\tree.gv -o .\tree.pdf

树模型的可视化_第4张图片

你可能感兴趣的:(可视化树,python,人工智能,机器学习)