0.0 初识决策树
决策树的思路非常简单,就是描述了人脑做决策的过程,整个决策过程使用树形结构进行描绘。树的每个内部节点为一个决策点,每个叶节点则为一个标签,即最后的决策(结果)。例如:
上图可以看出,决策树的思想是非常直观的。从根节点开始,对某一特征(决策点:年龄)进行判断,根据判断结果前往到下一个特征的子节点(决策点:长相)或叶节点(结果:不见)。每个子节点对应着某特征的一个取值,如此递归地对每一个特征进行判断并分配,直到到达叶节点(结果)。
1.0 再识决策树
1.1 决策树的定义
前面从直观感受上介绍了决策树及其构建思路。严谨地讲,统计学中对决策树定义为:
决策树表示给定特征条件(决策点)下,类(结果)的条件概率分布,这个条件概率分布表示在特征空间的划分上,将特征空间根据各个特征值不断进行划分,就将特征空间分为了多个不相交的单元,在每个单元定义了一个类的概率分布,这样,这条由根节点到达叶节点的路径就成了一个条件概率分布。
上例中,特征就是各决策点,包括年龄、长相、收入等,类就是决策结果,例中包含“见”和“不见”两种。每一个叶节点是一种判断结果,而判断结果是基于向上一些列决策点的概率得到的。
1.2 决策树的目标和损失函数
决策树的目标是对通过训练模型达到对数据准确分类的目的。同一般分类型的学习算法一样,决策树的训练或学习,就是从训练数据集中得到一组分类规则,使其与训练集中的分类结果差异最小,同时具备较好的泛化能力。
与一般模型相同,决策树也使用损失函数表示这一目标。但由于决策树的结果是一个条件概率分布,因此采用的是极大似然函数作为损失函数。
关于极大似然函数:
参考:https://mp.weixin.qq.com/s/k_OjObExgsi4DaHMSGUUMA
极大似然法是属于数理统计范畴,旨在由果溯因。把“极大似然估计”拆成三个词:极大(最大的概率)、似然(看起来是这个样子的)、估计(就是这个样子的),连起来就是:大概率看起来是这样的,那就是这样。比如扔一枚骰子(骰子每个面上只标记1或2),现在已知扔了n次骰子其中有k次朝上的是1,然后问这个骰子标记为1的面所占的比例w是多少?极大似然法的思想就是估计当w取值为多少的时候,标记为1的面k次朝上的可能性最大。具体计算方法就是对表达式求最大值,得到参数值估计值:一般就是对这个表达式求一阶导=0(二阶导<0);
这就是极大似然估计方法的原理:用使概率达到最大的那个参数值w来估计真实的w。决策树生成的过程可以理解成对决策树模型的参数估计(就是基于特征空间划分的类的概率模型),根据训练数据的特征分布,选择使得模型最契合当前样本分布空间的条件概率模型。
3.0 决策树的构建过程
决策树构建分三个步骤:特征选择-->决策树生成-->决策树剪枝。
决策树构建的核心就是选择最优的分类特征,并根据该特征对训练数据(寻找最优的分割点)进行分割,使得对各个子数据集同样有一个最好分类的过程。这一过程就是特征空间的划分,决策树的构建就是递归执行上述过程,直至所有训练数据子集被基本正确的分类,或者没有合适的分类特征为止。
通过不断的特征空间划分、检验、再划分的过程,决策树能够对训练数据有较好的分类能力,但对未知的测试数据却未必有很好的分类能力,即可能发生过拟合现象。因此还需要对已生成的树自下而上进行剪枝,降低树结构的复杂度,从而使其具有更好的泛化能力。具体而言,剪枝就是去掉过于细分的叶结点,使其回退到父结点,甚至更高的结点,然后将父结点或更高的结点改为新的叶结点,从而使得模型有较好的泛化能力。
决策树构建和决策树剪枝是个相对的过程,决策树构建旨在得到对于当前子数据集最好的分类效果(局部最优),而决策树剪枝则是考虑全局最优,增强泛化能力。
4.0 决策树的优缺点
优点:
决策树是一个非参数的决策算法,决策树可以解决分类问题,且支持多分类问题。
决策树也可以解决回归问题,按照树的路径追踪到叶子结点,最终叶子节点对应一个数值,且回归问题的结果是一个具体的数值,就可以落在叶子结点的所有样本的平均值,作为回归的预测结果。
决策树具有非常好的可解释性。易于理解和实现.,使用者有能力去理解决策树所表达的意义。
数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。
能够同时处理数值型和类别型特征属性,其他的算法技术往往要求数据属性的单一。
白盒模型,根据所产生的决策树很容易推出相应的逻辑表达式。
易于通过静态测试来对模型进行评测,易测量该模型的可信度。
在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
缺点:
决策树的结果通常是次优解。从所有可能的决策树结果中选取最优属于NP完全问题,所以现实中决策树学习通常采用启发式方法,近似求解最优结果。