决策树可视化

决策树相比其他算法的一个重要特性就是——可解释性,构建决策树的过程就相当于形成 if-then 规则集。如果我们能够将生成的决策树可视化,那么我们就可以对数据集与预测值之间的关系有清晰的认识。

决策树示意图

我们可以使用 graphviz 包来帮助我们可视化决策树模型,安装地址传送门。然后,选择适合操作系统的版本下载。下载完成后可以将 graphviz bin 目录路径添加到系统环境变量中,这样方便后续的操作。

代码示例

首先,我们以 sklearn.datasets 包中的鸢尾花数据集为例。

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

dataset = load_iris()
x = dataset.data
y = dataset.target

接着,我们训练决策树模型,新增参数 max_depth 用以限制树的深度,为了决策树模型过拟合,在这里主要是不想让最后导出的决策树图片过大,方便大家观看。

model = DecisionTreeClassifier(max_depth=3)
model.fit(x, y)

然后,调用 export_graphviz() 方法输出一个图形定义文件,命名为 iris_tree.dot。

from sklearn.tree import export_graphviz

export_graphviz(
    model, 
    out_file='iris_tree.dot',
    feature_names=dataset.feature_names,
    class_names=dataset.target_names,
    rounded=True, 
    filled=True
)

最后,可以使用 graphviz 包的中的 dot 命令行工具将这个 .dot 文件转换为其他格式,例如 PDF 或 PNG。

dot -Tpng iris_tree.dot -o iris_tree.png

【iris_tree.png】:

iris_tree.png

我们再把 max_depth 设置得大一些,看看最后生成的决策树长什么样?

model = DecisionTreeClassifier(max_depth=5)
model.fit(x, y)

iris_tree2.png

参考

  • 《机器学习实战-基于Scikit-Learn和TensorFlow》
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值