大白话5分钟带你走进人工智能-第二十三节决策树系列之特色和数学表达形式(2)

                                                                  第二十三节决策树系列之特色和数学表达形式(2)正则表达式

 上节咱们讲解了决策树的概念,本节的话咱们讲解决策树的特色以及其数学表达形式。算法

目录app

1-决策树的特色函数

2-决策树的数学表达形式工具


1-决策树的特色

决策树的特色大体有如下几种:优化

一、能够处理非线性问题。逻辑回归处理非线性问题有一些捉襟见肘,没有特别完善的方法能解决,咱们有若干种妥协的方法来让它凑合能用,而决策树天生就能够处理非线性问题。假设在一个二维的平面上,有若干数据如图:spa

每个数据有两个维度,x1和x2。总共9个数据点。若是咱们想用逻辑回归来分类,不管怎么分,都找不到一条很好地直线将图中点分开。假设咱们用决策树分裂的话,第一次分裂选择条件是x<3,至关于画一条竖线,全部x<3的都分到左边,x>3分到右边。code

分到左边的都是O点,分到右边的有一半是O点一半是X点,给它落成一个叶子节点不太合适,就须要再次分裂,再选择分裂条件是x<6,就将数据完美的分开了。咱们的决策树的分裂图如图所示:blog

 

原来逻辑回归处理不了的非线性问题,决策树垂手可得的就把它们分开了。递归

再好比下图:

数据点如图,想把蓝色,红色的数据点分开,一样的线性不可分,而决策树却能够会画出一个波浪线,把数据分开,至关于每个折点部分就多出分裂一个条件。因此说经过决策树不断分裂的方式,能够处理各类各样的非线性问题。

二、可解释性强。从数据集上抓到一个算法,生成出来一个模型,逻辑回归模型的本质,记在计算机里面的是一组w,训练出来这个模型是个一组数,它没有具体的物理含义。好比0.8和 0.7,怎么解释这两个w到底差异在哪?说不太清,可解释性差一些,机器到底学少什么你不知道。而决策树算法,记录下来的是一组分类条件,相比一组w来讲,它的可解释性是要强很多。

          三、 决策树的模型很是简单。它不须要借助函数最优化工具,在原生的决策树里面是没有损失函数这个概念的。决策树其实特别像森林球,某一条数据顺根节点、分支节点下来,最后落到某一个叶子节点上。它这个模型相对于梯度降低的训练过程当中是比较简单的,预测就更简单了,直接跑一遍if…else,最后该是谁就是谁。

          四、缺点 不容易显示地使用函数表达,不可微。可能带来一个问题是很差给它加正则项,正则项是用来评估模型简单程度的。原来的损失函数,给它加一个L1正则,组成了一个新的形式函数叫obj,本来是让L损失函数最小,如今要变成让它们俩合obj最小。为何加上它效果就能好?在算法模型里边是经过这L1和L2两个指标来评估模型究竟是简单仍是复杂的。若是有更简单的方式能获得更好的模型,固然要优先简单的,由于复杂模型容易过拟合,这也就是正则存在的意义。可是决策树很难加这种正则表达式。

 

2-决策树的数学表达形式

决策树虽然不容易显示地使用函数表达,非得要表达的话,咱们有两种方式表达。
           第一种是从路径的角度(Path View),将每一个从根到叶子的路径做为一个假设 g,经过不一样的条件组合获得最后的 G (X)。
           第二种是从递归的角度(Recursive View),父树是由子树递归定义的 tree=(root,sub-trees)

 

一、咱们先说第一种从路径的角度:表达以下:

                                                                 $G(\mathbf{x})=\sum_{t=1}^{T} q_{t}(\mathbf{x}) \cdot g_{t}(\mathbf{x})$

上面G(x)是一个函数,对于函数咱们永远就把它理解成一个机器,你给我一个原材料,我给你生产一个东西。因此这里面的G(x)也不例外,对于决策树来讲通常是作分类的,因此咱们能够想到这个函数G(x)其实就表明着你给我一个X,我给你一个分类结果。因此G表明着这棵已经生成好的决策树,X表明着扔进去的一个原数据。而函数后面的表达式表明我这个机器如何工做的,如何从已知获得结果的,是表达式记录的信息。咱们看到后面是个连加符号,给它拆解出来就是

$G(x)=q_{1}(x)\cdot g_{1}(x)+q_{2}(x)\cdot g_{2}(x)+q_{3}(x)\cdot g_{3}(x)$+...+q_{T}(x)\cdot g_{T}(x)$$               

这是什么意思呢?好比下图的决策树,我把叶子节点编号如图:

这里面q表明全部决策树的路径,好比咱们的X是qutitingtime<17:00 而且没有约会,那么在上述决策树存在的状况下,这个数据会落到2号节点,可以通往几号节点的路径就叫几号路径,因此X扔进来的状况下,会通往2号路径,因此咱们定义此时的X只有q(2)x=1,其余路径都为0,即q(1)x=0,q(3)x=0...。因此咱们qt是定义出来的,表明着x是否是在第t号路径上,is x on path t。gt(x)表明某一号叶子节点的表达,好比这里的X,落在2号节点上,因此表达为Y,也就是说之后甭管X是什么样,只要落在2号节点上,就写成Y,所以qt(x).gt(x)就是表明来一条数据,先是经过qt(x)看看落在哪一个叶子节点上,而后再经过gt(x)看看这个叶子结点的表达是什么,咱们就返回什么(Y 或者N),简直就是一个很无聊的表达,而且表达的很简单。

上面公式表达的前提就是树已经存在了,它的判别函数怎么表达。因此仍是针对上述落在2号节点的X,咱们针对上面的决策树把连加符号拆解出来就是:

                 $G(x)=0\cdot g_{1}(x)+1 \cdot g_{2}(x)+0\cdot g_{3}(x)$+0\cdot g_{4}(x)+0\cdot g_{5}(x)+0\cdot g_{6}(x)$$

由于只有2号节点的q2(x)=1,其余都为0。这里面的点乘表明着对应关系,并非真正的乘。T表明第几号叶子结点即叶子节点的序号。gt(x)是一个base hyponthesis 基础的假设,这里就是假设我全部的叶子结点的表达的形式是Y仍是N,是一个常数。由于这里面gt(x)的值只有Y或者N。不是取决于X的输入,而是取决于我当前落在第几号节点,g(1)(x)就是N,g(2)X就是Y。因此总结以下:

           二、第二种表达决策树的方式:递归的角度(Recursive View)

                                                        $G(\mathbf{x})=\sum_{c=1}^{C}[b(\mathbf{x})=c] \cdot G_{c}(\mathbf{x})$

咱们经过下面举例解释下上面公式:

实际上上面是个递归的表达形式。好比对于根节点(qutting time )来讲,有3个子节点,如图所示。对于1号子节点的根(has a date)来讲有两个子节点 N或者Y。仍是拿上面X是qutitingtime<17:00 而且没有约会的例子来讲,从根节点下来会落到1号子节点,这里面的b(x)是分支的条件,这个例子中b(x)=1 ,C表明几个子节点,而对于qutting time的根节点来讲,有3个子节点,因此C=3。落在几号节点上,只有当前子节点为1,其余都为0,因此对于这里只有G1(x)=1。当落到1号节点以后,继续往下走,同理接着遍历,会落到1号子节点中的Y子节点上,同理对于 has a date 做为根节点来讲,C=2,由于落在Y子节点上,此时是叶子结点,不在遍历,因此向上依次返回最终结果Y。

总结以下:

下一节咱们讲解决策树的分裂流程以及分裂条件的评估。

相关文章
相关标签/搜索