本文是关于如何理解python决策树的基本原理。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。我们就不多说了。让我们和边肖一起看看。
决策树是一种非参数监督学习方法,主要用于分类和回归问题。
决策树模型通过一系列if then决策规则将特征空间划分为有限数量的不相交子区域。对于落在同一子区域的样本,决策树模型给出相同的预测值。
这些if-then决策规则之间的层次关系形成了一个树形结构,称为决策树。这些不相交的子区域一一对应于树结构的叶节点。
一,决策树原理概述
1,假设空间
从假设空间、目标函数和优化算法三个方面阐述了决策树算法的基本原理。
假设空间是我们对模型形式的先验假设,我们最终得到的模型必须符合我们对模型形式的先验假设。
决策树模型的先验形式可以表示如下:
其中q[x]是从特征空间映射到节点数空间的函数。决策树模型的关键是将特征空间划分为不相交的子区域,同一子区域内的样本具有相同的预测值。
为了确定一棵决策树的完整结构,需要明确以下两个方面:一是如何划分子区域,二是子区域的预测值有多少。
2,目标函数
目标函数是我们用来评估模型质量的标准。目标函数决定了我们从假设空间中选择模型的偏好。
决策树的目标函数可以用来评价决策树的质量。这一目标职能应包括两个方面。第一个是反映决策树对样本数据点拟合精度的损失项,第二个是反映决策树模型复杂度的正则化项。
正则项可以取模型的叶节点数。也就是说,决策树模型划分的不相交的子区域越多,我们认为模型越复杂。
对于损失项,如果是回归问题,损失项可以取平方损失;如果是分类问题,我们可以用杂质作为测量标准。
为什么用不纯?由于决策树同一个叶节点上的所有样本都有相同的预测值,如果这些样本的真标签只有一个值,那么这个叶节点上的样本就非常纯粹,我们可以直接将预测值指定为这个叶节点上标签的值,预测误差为0。相反,如果叶节点上不同样本的标签值杂乱无章,所谓难以调整,那么无论我们如何指定叶节点上的预测值,总会出现较大的预测误差。
那么,如何测量杂质呢?一般有三种方法,信息熵、基尼杂质和分类错误率。分类错误率是将标签值最多的类别作为叶节点的预测值时的错误率。信息熵和基尼杂质后面会介绍。
3,优化算法
优化算法是指如何调整我们模型的结构或模型超参数的值,使模型的目标函数值不断下降。
优化算法决定了我们采取什么步骤在假设空间中找到合适的模型。
对于决策树,优化算法包括树生成策略和树剪枝策略。
树生成策略一般采用贪婪思想不断选择特征来分割特征空间。
树木的修剪策略一般分为修剪前策略和修剪后策略。一般来说,后剪枝策略生成的决策树是有效的,但其计算成本也较高。
二,ID3,C4.5,CART决策树的对比
1,适用问题范围的不同
ID3算法只能处理离散特征的分类,C4.5可以处理离散特征和连续特征的分类,而CART算法可以处理离散和连续特征的分类和回归。
2,假设空间的不同
ID3和C4.5算法使用的决策树可以是多分支的,而CART算法的决策树必须是二叉树。
3,目标函数的不同
同样,在处理分类问题时,这三个模型在决定选择哪个特征来分割决策树时使用不同的标准。ID3算法以信息增益为标准,C4.5算法以信息增益率为标准,CART算法以基尼杂质增益为标准。
4,优化算法的不同
这三种算法有不同的剪枝策略。
ID3算法实际上没有修剪策略,当叶节点
上的样本都属于同一个类别或者所有特征都使用过了的情况下决策树停止生长。
C4.5算法使用预剪枝策略,当分裂后的增益小于给定阈值或者叶子上的样本数量小于某个阈值或者叶子节点数量达到限定值或者树的深度达到限定值,决策树停止生长。
CART决策树主要使用后剪枝策略。
5,效果上的差异
ID3决策树是最早出现的决策树,C4.5是在它基础上的改进,CART决策树是更晚出现的,效果上一般而言CART树会好于C4.5,C4.5会好于ID3.
三,熵,条件熵,信息增益,信息增益率
1,熵
熵是对某个离散随机变量不确定性大小的一种度量。既然是反应不确定性的,我们的先验知识是当随机变量只有一种取值时,熵为0,当随机变量的取值可能性越多,在各个可能性之间的概率分布越平均,熵越大。熵的计算公式满足这些先验的特性。注意,熵只能度量离散随机变量的不确定性。
在决策树的应用场景中,我们实际上是用经验熵来衡量标签取值分布的“纯度”的,即用频率分布代替概率分布进行计算。
2,条件熵
所谓条件熵,是指给定随机变量X的取值的前提下,随机事件Y的不确定性的一种度量。
在决策树的应用场景中,条件熵的含义更加清晰明了,即按照离散特征X的取值将样本空间划分成多个叶子节点,各个叶子节点上样本标签Y取值的熵不纯度的加权平均。
3,信息增益
随机变量X对于随机变量Y的信息增益被定义成Y的熵和Y对X的条件熵之差。
在决策树的应用场景中,信息增益的含义就是特征X对样本标签Y不确定性减少的贡献。
信息增益也叫做互信息。互信息存在如下特性,Y对X的互信息和X对Y的互信息是相等的。互信息是衡量两个离散随机变量之前相关性的一种常用指标。
简单证明如下:
4,信息增益率
ID3模型采用信息增益作为待分裂特征的选择标准,但是信息增益倾向于选择特征取值数量较多的特征。C4.5用信息增益率作为待分裂特征的选择标准,可以避免这种倾向。值得注意的是,C4.5在选择连续特征的分裂点位的时候,依然使用信息增益作为选择标准。
X对Y的信息增益率是X对Y的信息增益和X的熵的比值。
四,基尼不纯度和基尼不纯度增益
1,基尼不纯度
基尼不纯度和熵具有相似的作用,可以衡量一个随机变量取值的不确定性或者说"不纯净"程度。它满足我们的先验预期,当随机变量只有一种可能取值的时候,基尼不纯度为0,当随机变量的可能取值数量越多,取值概率分布越平均,基尼不纯度越大。
基尼不纯度的定义如下。
基尼不纯度满足我们对不确定性衡量指标的先验假设。事实上,基尼不纯度和熵有非常密切的关系,把熵的对数部分泰勒展开到1阶,即得到基尼不纯度的定义公式。
2,基尼不纯度增益
基尼不纯度增益和信息增益的作用非常类似。计算方法也非常相似。
值得注意的是CART决策树是二叉树,在计算离散特征的基尼不纯度增益时会尝试根据特征是否取某个特定的类别把特征空间分成两部分,而在计算连续特征的基尼不纯度增益时会尝试选择一个分裂点位把特征空间分成两部分。
以上就是怎么理解python决策树的基本原理,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132975.html