如何使用Python中的决策树进行回归问题的可视化
决策树回归模型可视化常用的工具是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/
相关文章