python决策树画图
时间: 2023-10-13 18:29:07 浏览: 97
在 Python 中,我们可以使用 scikit-learn 库来构建决策树模型,并使用 Graphviz 库来可视化决策树。
以下是一个示例代码,假设我们已经使用 scikit-learn 的 DecisionTreeClassifier 构建好了决策树模型 clf,现在需要将其可视化:
```python
from sklearn.tree import export_graphviz
import graphviz
dot_data = export_graphviz(clf, out_file=None,
feature_names=iris.feature_names,
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
graph = graphviz.Source(dot_data)
graph
```
其中,export_graphviz 函数用于将决策树转换为 Graphviz 格式的数据,参数说明如下:
- clf:已经训练好的决策树模型;
- out_file:输出文件名,如果为 None,则返回 Graphviz 格式的数据;
- feature_names:特征名称,可以为字符串列表,或 None(表示使用默认名称);
- class_names:类别名称,可以为字符串列表,或 None(表示使用默认名称);
- filled:是否给节点着色(True 或 False);
- rounded:节点是否圆角(True 或 False);
- special_characters:是否使用特殊字符(True 或 False)。
然后,我们可以使用 graphviz 库将 Graphviz 格式的数据可视化:
```python
graph.render("iris_decision_tree") # 输出为 PDF 文件
```
其中,render 函数用于将 Graphviz 格式的数据渲染为 PDF、PNG、SVG 等格式的文件,参数为输出文件名。
完整代码示例:
```python
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, export_graphviz
import graphviz
# 加载数据集
iris = load_iris()
# 构建决策树模型
clf = DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
# 可视化决策树
dot_data = export_graphviz(clf, out_file=None,
feature_names=iris.feature_names,
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
graph = graphviz.Source(dot_data)
graph.render("iris_decision_tree") # 输出为 PDF 文件
```
运行后,将会在当前目录下生成一个名为 iris_decision_tree.pdf 的文件,即可查看决策树图。
阅读全文