📜  查找决策树python的规则(1)

📅  最后修改于: 2023-12-03 15:40:23.247000             🧑  作者: Mango

查找决策树python的规则介绍

决策树是一种常见的机器学习算法,通常用于分类问题和回归问题。在决策树中,每个节点代表一个特征,每个叶子代表一种分类或回归结果。在本文中,我们将介绍在Python中查找决策树规则的方法。

sklearn库

一个流行的Python机器学习库是scikit-learn。它包含了许多实用的机器学习算法和工具,包括决策树。要查找决策树规则,我们可以通过以下步骤使用sklearn库:

from sklearn.tree import export_text
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier

# 加载鸢尾花数据集
iris = load_iris()

# 创建决策树
clf = DecisionTreeClassifier(random_state=0).fit(iris.data, iris.target)

# 导出决策树规则
tree_rules = export_text(clf, feature_names=iris['feature_names'])
print(tree_rules)

解释:首先,我们从sklearn库中导入了'export_text'和'DecisionTreeClassifier'函数,以及'load_iris'函数用于加载鸢尾花数据集。然后,我们用鸢尾花数据集训练了一个决策树分类器,并将其存储在'clf'变量中。最后,我们使用'export_text'函数将决策树规则导出为文本并打印出来。

输出:

|--- petal length (cm) <= 2.45
|   |--- class: 0
|--- petal length (cm) >  2.45
|   |--- petal width (cm) <= 1.75
|   |   |--- petal length (cm) <= 4.95
|   |   |   |--- petal width (cm) <= 1.65
|   |   |   |   |--- class: 1
|   |   |   |--- petal width (cm) >  1.65
|   |   |   |   |--- class: 2
|   |   |--- petal length (cm) >  4.95
|   |   |   |--- petal width (cm) <= 1.55
|   |   |   |   |--- class: 2
|   |   |   |--- petal width (cm) >  1.55
|   |   |   |   |--- petal length (cm) <= 5.45
|   |   |   |   |   |--- sepal width (cm) <= 3.10
|   |   |   |   |   |   |--- class: 1
|   |   |   |   |   |--- sepal width (cm) >  3.10
|   |   |   |   |   |   |--- class: 2
|   |   |   |   |--- petal length (cm) >  5.45
|   |   |   |   |   |--- class: 2
|   |--- petal width (cm) >  1.75
|   |   |--- petal length (cm) <= 4.85
|   |   |   |--- sepal width (cm) <= 3.10
|   |   |   |   |--- class: 2
|   |   |   |--- sepal width (cm) >  3.10
|   |   |   |   |--- class: 1
|   |   |--- petal length (cm) >  4.85
|   |   |   |--- class: 2

从输出结果可以看到,这是一个具有深度3的决策树,包含7个叶子节点。

graphviz库

另一个流行的Python库是graphviz。它用于绘制各种图表,包括决策树。要查找决策树规则,我们可以通过以下步骤使用graphviz库:

from sklearn.tree import export_graphviz
from IPython.display import SVG
from graphviz import Source

# 导出决策树图形
graph = Source(export_graphviz(clf, out_file=None, feature_names=iris['feature_names'], class_names=iris['target_names'], filled=True))

# 显示决策树图形
display(SVG(graph.pipe(format='svg')))

解释:首先,我们从sklearn库中导入了'export_graphviz'函数,并使用'IPython.display'和'graphviz'库导入了'SVG'和'Source'函数。然后,我们使用'export_graphviz'函数将决策树导出为图形。最后,我们使用'Source'和'SVG'函数显示决策树图形。

输出:

决策树规则

从输出结果可以看到,这是一个与前面相同的决策树,但以图形方式显示出来,看起来更直观。

总结

在Python中,我们可以使用sklearn库和graphviz库来查找决策树规则。使用export_text函数可以将决策树规则导出为文本, Source和SVG函数可以将决策树绘制为图形。