如何使用Python中的决策树进行回归问题的可视化

2023-04-14 00:00:00 可视化 如何使用 回归

决策树回归模型可视化常用的工具是Graphviz,需要先安装Graphviz和pydotplus模块。
以下是一个示例演示如何使用Python中的决策树进行回归问题的可视化。
首先,我们生成一个虚拟数据集:

import numpy as np
# 生成虚拟数据集
np.random.seed(42)
X = np.sort(5 * np.random.rand(80, 1), axis=0)
y = np.sin(X).ravel()
y[::5] += 3 * (0.5 - np.random.rand(16))

然后,我们使用sklearn中的DecisionTreeRegressor来拟合数据:

from sklearn.tree import DecisionTreeRegressor
# 训练决策树回归模型
regr = DecisionTreeRegressor(max_depth=2)
regr.fit(X, y)

最后,我们可以使用pydotplus将决策树可视化:

from sklearn.tree import export_graphviz
import pydotplus
# 可视化决策树
dot_data = export_graphviz(regr, out_file=None,
                           feature_names=["pidancode.com"], filled=True, rounded=True)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_png("tree.png")

其中,feature_names参数为特征的名称,在这个例子中我们只有一个特征,所以使用["pidancode.com"]作为特征名。filled和rounded参数控制节点的填充和圆角。最后,我们将可视化结果保存为PNG格式的图像文件。
以下是完整代码:

import numpy as np
from sklearn.tree import DecisionTreeRegressor, export_graphviz
import pydotplus
# 生成虚拟数据集
np.random.seed(42)
X = np.sort(5 * np.random.rand(80, 1), axis=0)
y = np.sin(X).ravel()
y[::5] += 3 * (0.5 - np.random.rand(16))
# 训练决策树回归模型
regr = DecisionTreeRegressor(max_depth=2)
regr.fit(X, y)
# 可视化决策树
dot_data = export_graphviz(regr, out_file=None,
                           feature_names=["pidancode.com"], filled=True, rounded=True)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_png("tree.png")

执行后,会在当前目录生成一个名为tree.png的图像文件,打开即可看到决策树的可视化结果。
参考文献:
1. scikit-learn官方文档:Decision Trees - https://scikit-learn.org/stable/modules/tree.html
2. pydotplus官方文档:Installation - https://pydotplus.readthedocs.io/_/downloads/en/latest/pdf/

相关文章