用python绘制分类决策树
时间: 2023-11-20 11:04:55 浏览: 70
要用Python绘制分类决策树,可以使用Python的graphviz库。下面是一个简单的示例代码:
```python
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, export_graphviz
import graphviz
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 训练决策树模型
dt = DecisionTreeClassifier(random_state=0)
dt.fit(X, y)
# 可视化决策树
dot_data = export_graphviz(dt, 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")
```
这段代码首先加载了鸢尾花数据集,然后使用决策树模型训练数据集。最后,使用export_graphviz函数将决策树转换为DOT格式,并使用graphviz.Source函数将其转换为图形。最后一行代码将图形保存为PDF文件。
相关问题
python绘制决策树
要使用Python绘制决策树,可以按照以下步骤进行操作:
1. 导入所需的库:在Python中,我们需要导入一些必要的库来绘制决策树。这些库包括numpy、pandas、graphviz和sklearn。其中,graphviz是用于可视化决策树的关键库。可以使用以下代码导入这些库:
```python
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.tree import export_graphviz
import graphviz
```
2. 加载数据集:为了绘制决策树,我们需要一个数据集。我们可以使用sklearn库中的load_iris函数加载一个经典的鸢尾花数据集作为示例。示例代码如下:
```python
iris = load_iris()
X = iris.data
y = iris.target
```
3. 拟合决策树模型:接下来,我们使用DecisionTreeClassifier()函数创建一个决策树模型,并使用fit()函数对其进行拟合。示例代码如下:
```python
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X, y)
```
4. 导出决策树:绘制决策树之前,我们需要将决策树导出为DOT格式。我们可以使用export_graphviz函数将决策树导出为DOT格式的文件。示例代码如下:
```python
dot_data = export_graphviz(clf, out_file=None, feature_names=iris.feature_names, class_names=iris.target_names, filled=True, rounded=True)
```
5. 可视化决策树:最后,我们可以使用graphviz库中的Source函数将DOT格式的决策树文件可视化。示例代码如下:
```python
graph = graphviz.Source(dot_data)
graph.render("decision_tree") # 可以将决策树保存为PDF或图片等格式
graph.view() # 在窗口中显示决策树
```
这样,我们就可以使用Python来绘制决策树了。
python绘制决策树字典
可以使用Python中的Graphviz库来绘制决策树字典。下面是一个绘制决策树字典的示例代码:
```python
from graphviz import Digraph
def plot_tree(tree_dict):
dot = Digraph(comment='Decision Tree')
for key in tree_dict:
dot.node(key, label=key)
for value in tree_dict[key]:
dot.edge(key, value)
dot.render('decision_tree.gv', view=True)
```
其中,`tree_dict`是一个字典,表示决策树的结构,例如:
```python
tree_dict = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F', 'G']
}
```
表示决策树的结构如下:
```
A
/ \
B C
/ \ / \
D E F G
```
调用`plot_tree()`函数即可生成决策树的可视化图形。
阅读全文