本篇介绍一些决策树的sklearn包tree的知识点,关于决策树的原理可参考文章决策树之原理与调参。
1.决策树的sklearn包介绍
python可以实现分类树和回归树两种:
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import DecisionTreeRegressor
介绍几个调参比较重要的参数。
criterion:划分标准,就是决策树的分裂标准。对于分类树,可选“gini”或“entropy”,即Gini不纯度或信息增益;对于回归树,可选“mse”,“friedman_mse”和“mae”,即均方误差、改进型的均方误差和平均绝对误差
max_depth:决策树的最大深度
min_samples_split:非叶子节点最小分割样本数
min_samples_leaf:叶子节点最小样本数
max_features:搜寻最佳分裂的最大特征数量
ccp_alpha:CCP算法的误差率增益率α阈值,小于该值的误差率增益率对应的节点都会被剪枝
决策树的应用方法除了sklearn包统一的predict外,还有几个输出方法需要介绍一下:
apply:返回每个样本被预测为的叶子节点索引
decision_path:返回决策路径
cost_complexity_pruning_path:返回两个参数,第一个是CCP剪枝后决策树序列T0,T1,...,Tt对应的误差率增益率α;第二个是剪枝后决策树所有叶子节点的不纯度
这里介绍一下sklearn内值包对决策树的索引编码规则。
从根节点开始,先穷尽左边所有路径,再倒序返回右边路径,并从0开始依次编码
举一个例子:
2.决策树可视化
一颗决策树训练完毕后,为了评估决策树的效果,一方面,我们当然希望可以把它可视化,方便阅读;另一方面,希望可以对每一个节点的信息做一些数据分析。本节从可视化和决策树结果数据分析两个角度介绍一些工具。
首先,在Python可以实现可视化,需要用到os、pydotplus、Image和graphviz等包,其中os、pydotplus、Image直接导入即可
import os
import pydotplus
from IPython.display import Imag