详细 小白的决策树学习笔记

文章目录决策树常见算法决策树应用示例 基于决策树的相关算法
决策树简介
【详细小白的决策树学习笔记】什么是决策树?先看看下图来个直观感受吧,谈过恋爱或者想要谈恋爱的小伙伴一定有过下图的决策过程 。
正如上图这般直观,决策树的基本结构可以分为根节点、叶节点、以及分裂的条件 。从机器学习的角度来看,就是根据一定的规则不断对样本数据进行节点分裂,直到分裂完成后的节点能够满足既定的预测目标 。根据目标变量是连续还是离散的可将决策树分为回归树与分类树,两者在寻找最优分割点的策略上也有所不同 。
决策树结构较简单,可解释性强,在需要强解释性金融风控、智慧医疗等领域中得到了广泛应用 。虽然决策树基本结构简单,但以决策树为基模型的 、、、、等集成学习模型性能却可媲美深度学习,且解释性更强 。所以决策树以及以决策树为基模型的机器学习算法是大伙儿的必备利器 。
决策树背景知识
决策树分裂的目标主要是让无序的数据变得有序,在分类决策树中选择最优分裂点的三大度量分别为:信息增益、信息增益率、基尼不纯度 。
信息增益
信息增益定义为分裂前后的信息熵差值,信息熵越大代表着事物越不确定,即信息增益越大代表着此次分裂把事物的不确定性减少得越多 。随机变量X的信息熵H(X)定义为:
其中p(x)代表取值为x时的概率,log为以2或者e为底的对数 。可以看出,当概率值为0.5时信息熵最大,即随机变量的不确定性最大 。
条件熵H(Y|X)表示已知随机变量X的条件下随机变量Y的不确定性,H(Y|X)可由以下公式推导:
基础的概念解决后,信息增益的计算公式如下:
其中S为全部样本的集合,value(T)为属性划分后,T所有取值的集合,v是T的其中一个属性值,Sv是S中属性T的值为v的样例集合,|Sv|为Sv中所含样例数 。
信息增益率
信息增益率定义为节点信息增益与该节点分裂信息度量的比值 。节点分裂信息度量(S,T)即为特征T的熵 。
其中k为特征T的取值数 。
基尼指数(基尼不纯度)
基尼指数表示在样本集合中随机选中的样本被分错的概率,衡量集合的“纯度”(或者说“无序程度”),基尼指数越小,集合纯度越高,分类效果越好 。其详细的定义如下(源自李航 《统计学习方法》):
决策树常见算法
常见的决策树算法有ID3,C4.5,CART等,其中ID3的分裂指标为信息增益 。
C4.5的分裂指标为信息增益率,为ID3的一种改进,即尽量选择取值较少(所含信息量较少)的特征进行分割,避免含有更多信息的特征在浅层的根节点中被分割(比如说对一个班的同学进行决策树分类,越接近于具体某位同学的描述应该放在每一个大类的分类描述之后) 。CART为分类回归决策树,其决策树设定为二叉树,即可分类,也可回归,作分类树时以基尼指数为分裂指标;作回归树时则遍历每个节点,在每个节点处最小化一个目标变量为连续变量的损失函数,一般为均方误差,寻找最优的特征空间分割点以最小化误差 。决策树的训练流程大致如下图所示,通过不断循环,使树的层数、节点数增加,即拟合能力增加,达到生长停止条件时(样本不可再分,或人为设置停止条件)结束训练 。在分类树中也可考虑对连续特征进行分桶操作以提高决策树对连续型特征的利用能力,使模型更健壮 。
决策树应用示例
决策树原理不太复杂,调用的步骤同样比较简单,上述的几种决策树算法都可以通过调包实现,只需调用.tree.er时换用不同的分裂指标即可实现不同的分类决策树,调用.tree.r即可实现回归树 。下面以分类树展开应用示例 。