pandas - 尝试在我的笔记本中查看决策树

标签 pandas machine-learning scikit-learn graphviz

我正在尝试缩放我的决策树以适合笔记本,但它似乎无法正确缩放。我必须继续滚动以获得更好的 View 。我可以请您帮忙解决这个问题吗?附件是它的外观图片。

from graphviz import Source
from sklearn import tree

from IPython.display import SVG
graph = Source( tree.export_graphviz(dt_classifier, out_file=None, feature_names=X.columns))
SVG(graph.pipe(format='svg'))

enter image description here

最佳答案

也许它不再相关了,因为这个问题已经开放了大约六个月。然而,我只是偶然发现了它,显然就像其他 83 位读者一样,我只是想出了自己的方法来解决这个问题。最简单的方法是使用 pydot 包(pip install pydot),然后添加默认大小。我还一直在使用 %matplotlib inline ,以便它在笔记本中很好地显示,但不使用 svg 模块。以你的例子:

%matplotlib inline

from graphviz import Source
from sklearn import tree
import pydot

dot_data = tree.export_graphviz(dt_classifier, out_file=None, feature_names=X.columns))
pdot = pydot.graph_from_dot_data(dot_data)
# Access element [0] because graph_from_dot_data actually returns a list of DOT elements.
pdot[0].set_graph_defaults(size = "\"15,15\"")
graph = Source(pdot[0].to_string())
graph

我还在export_graphviz中添加了rotate=True,使其以水平样式显示,树的根部直接可见,并且更容易跟踪。当然,您可以尝试调整size,以达到您可以接受的程度。

sample use of pydot for resizing graphviz data in Jupyter notebook

关于pandas - 尝试在我的笔记本中查看决策树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49766875/

相关文章:

python - 具有字符串/分类特征(变量)的线性回归分析?

python - scikit 学习 : Identifying the corresponding feature-id values when using SelectKBest

python - 有没有办法在 GridSearchCV 中获取所有计算的系数?

python - 根据 pandas Dataframe 中的索引从列表中删除元素

python - 如何将 KNeighborsRegressor 与半正矢度量一起使用?

python - Large Pandas Dataframe 中一小部分值的频率

python - 如何训练单目标识别?

python - 值错误: setting an array element with a sequence while using scale

python - 从数据框字符串Python中提取所有数字

python-3.x - Pandas 按值和索引对 DF 进行排序