决策树是一种可用于分类或回归的模型,其特点是没有参数需要计算,模型简单,可以处理非线性问题,不可微。事实上,在深度学习火起来后,决策树的应用已经相当有限了,但我们依然需要掌握这一比较原始的算法,因为其比较简单,且没有参数需要计算,不可微,因此不会遇到梯度消失和梯度爆炸等问题。
    决策树的数学表达有两种,一种是整体法表达,一种是迭代法表达,迭代法的表达更加常用一些,也更加符合决策树的工作模式。首先来说说整体法表达。
    先将公式附上,公式如下。整体方式表达是创造若干条通路,每条通路的终点都是某一叶节点,这个叶节点代表着最终的结果,通路个数与所给条件有关。整体法最大的特点就是把一条路上的每个节点都整体考虑了,到达某一通路最后节点的样本数所占总样本数的比例就是通过这条路的概率,我们将此概率与这条路的最后节点的常量相乘,最后将相乘的结果相加起来,就得到了决策树模型。
    image.png
    接下来说说迭代法表达。迭代方式表达比较符合编程思维。由某一条件可以划分出子树,然后子树又可以通过某一条件划分出子树的子树,这种方法只考虑了全树和子树之间的关系,对于子树内部的关系并不关心,而后层层迭代去生成整体的决策树。
    image.png
    不管是整体方式表达还是迭代方式表达,事实上表示的都是决策树模型。决策树模型的原理就是通过条件对原始数据集进行划分,直到划分出的数据集足够纯,足够纯在这里可以理解为某一节点的样本之间的相似度足够高。因此,比较关键的问题就是条件的选择,以及什么时候停止,这就涉及到了不同的指标。决策树模型在处理非线性问题上依旧很有价值,而且其可以用于之后我们要提到的Adaboost,XGBoost等集成化模型,我们必须熟练掌握决策树模型。