机器学习基础:决策树的可视化

2020-09-08 14:39:40 浏览数 (1)

目前无论是机器学习竞赛还是工业界,最流行、应用最广泛的xgboost其实是优化后的GBDT(LightGBM里面的boosting比较经典稳定的也是GBDT哦!),而GBDT的基分类器最常用的就是CART决策树!掌握决策树,对理解之后的GBDT、LightGBM都有大有裨益。

决策树原理及案例我们之前已经讲过很多,感兴趣的同学在上面搜索框搜索‘决策树’即可,本文我们仅介绍可视化工具包的安装配置方法和决策树可视化方法/解析,让大家对决策树有更形象的理解。

GraphViz配置指南

GraphViz是AT&T Lab开发的开源工具包,用于绘制dot语言脚本描述的图形,我们只需要关心点和边的关系,不需考虑布局、位置等,用来结合Python绘制图模型真是再好不过。

Graphviz 应用程序中有多种工具可以生成各种类型的图表(dot、neato、circo、twopi 等)。本文将重点介绍用于生成层级图的dot工具。

环境配置步骤:

1、首先下载安装包graphviz-2.38.msi,下载地址为graphviz官网

2、双击msi文件,然后一直选择next(默认安装路径为C:Program Files (x86)Graphviz2.38),安装完成之后,会在windows开始菜单创建快捷信息。

3、配置环境变量:计算机→属性→高级系统设置→高级→环境变量→系统变量→path,在path中加入路径:

4、验证:在windows命令行界面,输入dot -version,然后按回车,如果显示如下图所示的graphviz相关版本信息,则安装配置成功。

5、在C:/Users/H.X.X/anaconda3/Lib/site-packages找到pydot.py这个文件,在spyder里面用Ctrl F搜索self.prog,把self.prog=‘dot’改成’dot.exe’,保存。一共会搜出六个结果,只需要改这一处就好。

6、安装graphviz和pydotplus的python模块, 它的安装和安装普通的模块一样, 就是使用pip:

7、在Python终端测试,配置完毕

CART@GraphViz可视化

代码语言:javascript复制
from sklearn.datasets import load_iris
from sklearn import tree
import pydotplus
import sys
import os       
iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
from IPython.display import Image  
dot_data = tree.export_graphviz(clf, out_file=None, 
                         feature_names=iris.feature_names,  
                         class_names=iris.target_names,  
                         filled=True, rounded=True,  
                         special_characters=True)  
graph = pydotplus.graph_from_dot_data(dot_data)  
Image(graph.create_png())

除叶节点(终端节点)之外的所有节点都有 5 部分

  • 基于一个特征的值的有关数据的问题。每个问题的答案要么是 True,要么就是 False。数据点会根据该问题的答案在该决策树中移动。
  • gini:节点的基尼不纯度。当沿着树向下移动时,平均加权的基尼不纯度必须降低。
  • samples:节点中观察的数量。
  • value:每一类别中样本的数量。比如,顶部节点中有 2 个样本属于类别 0,有 4 个样本属于类别 1。
  • class:节点中大多数点的类别(持平时默认为 0)。在叶节点中,这是该节点中所有样本的预测结果。

0 人点赞