目前无论是机器学习竞赛还是工业界,最流行、应用最广泛的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)。在叶节点中,这是该节点中所有样本的预测结果。