决策树回归(决策树回归算法)
本篇文章给大家谈谈决策树回归,以及决策树回归算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
决策树是什么东东?
小白自学路上的备忘记录。。。
参考:
决策树(分类树、回归树)
决策树 :这个博客的图真好看,通俗易懂。哈哈
决策树详解
决策树(Decision Tree)是一种有监督学习算法,常用于分类和回归。本文仅讨论分类问题。
决策树模型是运用于分类以及回归的一种树结构。决策树由节点和有向边组成,一般一棵决策树包含一个根节点、若干内部节点和若干叶节点。决策树的决策过程需要从决策树的根节点开始,待测数据与决策树中的特征节点进行比较,并按照比较结果选择选择下一比较分支,直到叶子节点作为最终的决策结果。
简而言之,决策树是一个利用树的模型进行决策的多分类模型
为了找到最优的划分特征,我们需要先了解一些信息论的知识:
纯度 :
你可以把决策树的构造过程理解成为寻找纯净划分的过程。数学上,我们可以用纯度来表示,纯度换一种方式来解释就是让目标变量的分歧最小
信息熵 :表示信息的不确定度
在信息论中,随机离散事件出现的概率存在着不确定性。为了衡量这种信息的不确定性,信息学之父香农引入了信息熵的概念.
当不确定性越大时,它所包含的信息量也就越大,信息熵也就越高 。
信息熵越大,纯度越低。当集合中的所有样本均匀混合时,信息熵最大,纯度最低
经典的 “不纯度”的指标有三种,分别是信息增益(ID3 算法)、信息增益率(C4.5 算法)以及基尼指数(Cart 算法)
信息增益 :
信息增益指的就是划分可以带来纯度的提高,信息熵的下降。它的计算公式,是父亲节点的信息熵减去所有子节点的信息熵。
信息增益率
信息增益率 = 信息增益 / 属性熵
基尼指数
基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。
即 基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率
基尼系数的性质与信息熵一样:度量随机变量的不确定度的大小;
G 越大,数据的不确定性越高;
G 越小,数据的不确定性越低;
G = 0,数据集中的所有样本都是同一类别
详细参考: 机器学习——基尼指数
ID3 算法是建立在奥卡姆剃刀(用较少的东西,同样可以做好事情)的基础上:越是小型的决策树越优于大的决策树
ID3算法的核心是在决策树各个节点上根据信息增益来选择进行划分的特征,然后递归地构建决策树。算法采用自顶向下的贪婪搜索遍历可能的决策树空间。
具体方法 :
ID3的局限 :
C4.5与ID3相似,但大的特点是克服了 ID3 对特征数目的偏重这一缺点,引入信息增益率来作为分类标准。
C4.5的实现基于ID3的改进 :
信息增益率对可取值较少的特征有所偏好(分母越小,整体越大),因此 C4.5 并不是直接用增益率最大的特征进行划分,而是使用一个 启发式方法 :先从候选划分特征中找到信息增益高于平均值的特征耐陵链,再从中选择增益率最高的。
C4.5的局限 :
ID3 和 C4.5 生成的决策树分支、规模都比较大,CART 算法的二分法可以简化决策树的规模,汪睁提高生成决策树的效率。
CART(classificationandregressiontree),分类回归树算法,既可用于分类也可用于回归,在这一部分我们先主要将其分类树的生成。区别于ID3和C4.5,CART假设决策树是二叉树,内部节点特征的取值为“是”和“否”,左分支为取值为“是”的分支,右分支为取值为”否“的分支。这样的决策树等价于递归地二分每个特征,将输入空间(即特征空间)划分为有限个单元。
CART的分类树用基尼指数来选择最优特征的最优划分点,具体过程如下
剪枝就是给决策树瘦身,这一步昌孙想实现的目标就是,不需要太多的判断,同样可以得到不错的结果。之所以这么做,是为了防止“过拟合”(Overfitting)现象的发生。
过拟合:指的是模型的训练结果“太好了”,以至于在实际应用的过程中,会存在“死板”的情况,导致分类错误。
欠拟合:指的是模型的训练结果不理想.
剪枝的方法 :
参考: 【机器学习】决策树(上)——ID3、C4.5、CART(非常详细)
更多模型不断更新中。。。。
机器学习系列(三十六)——回归决策树与决策树总结
回归决策树树是用于回归的决策树模型,回归决策树主要指CART算法, 同样也为二叉树结构。以两个特征预测输出的回归问题为例,回归树的原理是将特征平面划分成若干单元,每一个划分租派耐单元都对应一个特定的输出。因为每个结点都是yes和no的判断,所以划分的边界是平行于坐标轴的。对于测试数据,我们只要将特征按照决策过程将其归到某个单元,便得到对应的回归输出值。
如上图所示的划分和相应的回归树,如果现在新来一个数据的特征是(6,7.5),按照回归树,它对应的回归结果就是C5。节点的划分的过程也就是树的建立过程,每划分一次,随即确定划分单元对应的输出,也就多了一个结点。当根据相应的约束条件终止划分的时候,最终每个单元的输出也就确定了,输出也就是叶结点。这看似和分类树差不多,实则有很大的区别。划分点的寻找和输出值的确定羡慎是回归决策树的两个核心弊春问题。
一个输入空间的划分的误差是用真实值和划分区域的预测值的最小二乘来衡量的:
其中, 是每个划分单元的预测值,这个预测值是该单元内每个样本点的值的某种组合,比如可取均值:
(输入特征空间划分为 )
那么求解最优划分即是求解最优化问题:
其中, 和 是每次划分形成的两个区域。
关于该最优化问题的求解这里不再介绍,下面直接使用skleaen中的决策回归树来看一下决策树的回归效果,数据集使用Boston房价数据:
不进行调参的话,可以看到在测试集上R方是0.59,显然这是不太好的结果,但是一个有趣的现象是,在训练集上:
R方值是1.0,也就是在训练集上决策树预测的回归结果完全吻合毫无偏差,这显然是过拟合。这个例子也说明了决策树算法是非常容易产生过拟合的,当然我们可以通过调参来缓解过拟合。
下面绘制学习曲线来直观看一下决策树回归模型的表现,首先绘制基于MSE的学习曲线:
学习曲线如下:
再绘制基于R方的学习曲线:
上面两种都是在默认情况下也就是不进行决策树深度和叶子节点个数等条件的限制得到的结果。发现在训练集上,如果不进行限制,可以做到0偏差,这是明显的过拟合。接下来调节参数再绘制学习曲线,为节约篇幅,只调节决策树深度这一个参数,而且只绘制基于R方的学习曲线:
max_depth=1时
max_depth=3时
max_depth=5时
随着深度的增加,模型复杂度越来越高,过拟合现象也越来越明显,可以测试,当max_depth=20时,在训练集上又为一条y=1的无偏差直线。有兴趣的仍然可以修改其它参数绘制学习曲线。
决策树的局限性:
使用本系列上篇文章中的鸢尾花数据,来看一下决策树对个别数据敏感会导致的结果,在本系列上篇文章中,使用信息熵划分,其余参数默认情况下绘制的决策边界是:
接着我们删除索引为138的数据,再来绘制决策边界:
发现此时的决策边界已经完全不同了,而这仅仅只是一个数据点的影响。
综上我们知道决策树实际是一种不够稳定的算法,它的表现极度依赖调参和数据,不过虽然决策树本身不是一种高效的机器学习算法,但是它们基于集成学习的组合——随机森林(RF)却是一个很鲁棒的机器学习算法,这将在下篇开始介绍。
[img]决策树回归结果不好
决策树回归结果不好需要注意决策树解决回归问岩段题的基本思路
决策树解决回段裂归问握枣闭题的思路与解决分类问题非常接近:当模型参数划分结束后,把每个“叶子”节点处的相应的数据输出值的平均值,作为该“叶子”的预测值(也就是训练结束后,每个“叶子”处可能有多个数值,取多个数值的平均值作为该“叶子”的预测值。根据特征值预测未知的样本数据时,如果最终计算结果在该“叶子”上,认为该“叶子”的预测值为该特征值对应的样本的数据)。
决策树回归适合小样本吗
适舍小样本,决策树是一种基本的分类与回归方法,本文叙述的是回归部分。回归决策树主要指CART(classification and regression tree)算法,内部结点特征的取值为“是”和“否”,滑老袭 为二叉树结构。
所谓回归,就是根据特征向量来决定对应的输出值。回归树就是将特征空间划分成若干单元,每一个划分单元有一个特定的输出。因为每个信兄结点都是“是”和“否”的判断,所以划分的边界是平行于坐标轴的。对于测试数据含运,我们只要按照特征将其归到某个单元,便得到对应的输出值。
决策树算法总结
目察陆录
一、决策树算法思想
二、决策树学习本质
三、总结
一、决策树(decision tree)算法思想:
决策树是一种基本的分类与回归方法。本文主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。 它可以看做是if-then的条件集合,也可以认为是定义在特征空间与类空间上的条件概率分布 。决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点,内部结点表示一个特征或属性,叶结点表示一个类。(椭圆表示内部结点,方块表示叶结点)
决策树与if-then规则的关系
决策树可以看做是多个if-then规则的集合。将决策树转换成if-then规则的过程是:由决策树的根结点到叶结点的每一条路径构建一条规则;路径上的内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,且只被一条路径或一条规则所覆盖。这里的覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。
决策树与条件概率分布的关系
决策树还表示给定特征条件下类的条件概率分布。这一条件概率分布定义在特征空间的一个划分上。将特征空间划分为互不相交的单元或区域,并在每个单元定义一个类的概率分布,就构成一个条件概率分布。决策树的一条路径对应于划分中的一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。
决策树模型的优点
决策树模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化原则建立决策树模型;预测时,对新的数据,利用决策树模型进行分类 。
二、决策树学习本质:
决策树学习是从训练数据集中归纳一组分类规则、与训练数据集不相矛盾的决策树可能有多个,也可能一个没有。我们需要训练一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。从另一个角度看 决策树学习是训练数据集估计条件概率模型 。基于特征空间划分的类的条件概率模型有无穷多个。我们选择的条件概率模型应该是不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。 决策树的学习使用损失函数表示这一目标,通常的损失函数是正则化的极大似然函数。决策树的学习策略是以损失函数为目标函数的最小化。当损失函数确定后,决策树学习问题变为损失函数意义下选择最优决策树的问题。这一过程通常是一个递归选择最优特征,并根据特征对训练数据进行分割,使得对各个子数据集有一个最好分类的过程。这一过程对应着特征选择、决策树的生成、决策树的剪枝。
特征选择 : 在于选择对训练数据具有分类能力的特征,这样可以提高决策树的学习效率。
决策树的生成 : 根据不同特征作为根结点,划分不同子猜没肆结点构成不同的决策树。
决策树的选择 :哪种特征作为根结点的决策树信息增益值最大,作为最终的决策树(最佳分类特征)。
信息熵 : 在信息论与概率统计中,熵是表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为P(X= ) = ,i=1,2,3...n,则随机变量X的熵定义为
H(X) = — ,0 = H(X) = 1,熵越大,随机变量的不确定性就越大。
条件熵(Y|X) : 表示在已知随机变量X的条件下随机变量Y的不确定性。
信息增益 : 表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。
信息增益 = 信息熵(父结点熵 ) — 条件熵(子结点加权熵)
三、 总结 :
优点
1、可解释性高,能处理非线性的数据,不需要做数据归一化,对数据分布没有偏好。
2、可用于特征工程,特征选择。
3、可转化为规则引擎。
缺点
1、启发式生成,不是最优解。
2、容易过拟合。
3、微小的数据改变会改变整个数的形状。
穗轿 4、对类别不平衡的数据不友好。
决策树(decisionTree)
决策树(decisionTree)是一种基本的分类和回归方法穗唯。此文仅讨论用于分类方法的决策树。
决策树的学习通常分为3步:
决策树的学习的思想主要源于
定义决策树 :
分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点又分为内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。
形如:
其中,圆表示内部结点,方框表示叶结点。
if-then规则,简单来说就是 :
举例:对于一个苹果,外表是红色的是红苹果,外表是绿色的是青苹果。可以表示为:
if-then规则集合具有一个重要的性质:
这就是说每一个实例都被一条路径或规则覆盖,并且只被一条路径或规则覆盖。这里所谓的覆盖是指实例的特征与路径上的特征一致,或实例满足规则的条件。
给定数据集:
其中, 为输入实例(特征向量),含有 个特征, 为类标记, , 为样本容量。
目标 :
根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确分类。
特征选择在于选取对训练数据具有分类能力的特征,这样可以提高决策树学习的效率。
如果我们利用某一个特征进行分类的结果与随机分类的结果没什么很大的差别的话,则称这个特征没有分类能力。
那么问题来了,怎么选择特征呢?
通常特征选择的准则是
下面通过例子来说明一下。
目标 :
希望通过所给的训练集数据,学习一个贷款申请的决策树。当新的客户提出贷款申请的时候,根据申请人的特征利用决策树决定是否批准贷款申请。
可见这里共有4个特征可供选择。用特征选择的准则是 。接下来介绍 。
:
熵是表示随机变量不确定性的度量。
设 是一个取有限个值的随机变量,其概率分布为
则随机变量 的熵定义为
若 ,则定义 。通常对数取以2为底,或是以 为底,熵的单位分布为比特(bit)或是纳特(nat)。
由上式可知,熵只依赖 的分布,而已 的值无关,则 的熵还可记作 ,即
则从定义可凳族碰知
当随机变量只取2个值的时候,例如 时, 的分布为
熵为
熵随概率变化的曲线为
当 或 时 ,随机变量完全没有不确定性,当 时 ,熵取值最大,随机变量不确定性最大。
设随机变量 ,其联合概率分布
条件熵 表示在已知随机变量 的条件下随机变量 的不枣谈确定性。随机变量 给定条件下随机变量 的条件熵(conditional entropy),定义为 给定条件下 的条件概率分布的熵对 的数学期望
信息增益
特征 对训练集 的信息增益
根据信息增益准则的特征选择方法:对训练集 ,计算其每个特征的信息增益,并比较大小,选择信息增益最大的特征。
前期定义各个量:
信息增益的算法
输入:训练集 和特征 ;
输出:特征 对训练集 的信息增益
回看刚才的例子,
解 :
这一次我很无聊的想用一下.csv文件类型。
所以训练数据集部分如下,我存在一个loan.csv文件里了。对.csv文件的各种处理一般由python的pandas模块完成。
第一步,导入相关模块
第二步,读入数据
若是使用jupyter,可以即刻查看一下数据,和数据标签。
可以看出,除了'ID'之外前4个标签 'age', 'work', 'own house', 'Credit conditions'为我们一直在说的特征 ,而最后一个标签'label'是我们所说的类 ,所以要处理一下这些标签,
第三步,计算训练集 的熵 :
这里会用到pandas的一个统计数据的功能, groupby(by = [列]).groups ,将数据统计成字典的形式,这么说比较抽象,看下图,将我们用pandas读入的data,分为2类, , Index 表示索引,即第0,1,4,5,6,14(python计数从0开始)个数据的 ,第2,3,7,8,9,10,11,12,13个数据的 .
那么计算训练集 的熵
第四步,计算特征 对数据集 的条件熵
第五步 ,计算信息增益
输入:训练集 和特征 和阈值 ;
输出:决策树
(1) 中所有实例都属于同一类 ,则 为单结点树,并将类 作为该结点的类标记,返回 ;
(2) 若 ,则 为单结点树,并将 中实例数最大的类 作为该结点的类标记,返回 ;
(3)否则,按照上述信息增益的算法,计算 中各个特征对 的信息增益,选择信息增益最大的特征 ;
(4)如果特征 的信息增益小于阈值 ,将置 为单结点树,并将 中实例数最大的类 作为该结点的类标记,返回 ;
(5)否则,对 的每一个可能值 ,依 将 分割为若干非空子集 ,将 中实例数最大的类 作为该结点的类标记,构建子结点,由结点及其子结点构成树 ,返回 ;
(6)对第 个子结点,以 为训练集,以 为特征集,递归的调用步骤(1)~步骤(5),得到子树 ,返回 。
对上述表的训练集数据,利用ID3算法建立决策树。
解 :
第一次迭代 :
【特征:有自己的房子】将数据集 划分为2个子集 (有自己的房子)和 (没有自己的房子),观察一下 和 :
:
由于 所有实例都属于同一类 ,所以它是一个叶结点,结点的类标记为“是”。
:
对于 则需从特征 中选择新的特征。
第二次迭代 :
将 看作新的数据集 。【特征:有工作】有2个可能值,划分为2个子集 (有工作)和 (没有工作),观察一下 和 :
:
由于 所有实例都属于同一类 ,所以它是一个叶结点,结点的类标记为“是”。
:
关于决策树回归和决策树回归算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。