决策树的特性及优缺点

        决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。

        决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。

        构建决策树采用贪心算法,只考虑当前纯度差最大的情况作为分割点。

        决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。

 

停止条件

        决策树的构建过程是一个递归的过程,所以需要确定停止条件,否则过程将不会结束。一种最直观的方式是当每个子节点只有一种类型的记录时停止,但是这样往往会使得树的节点过多,导致过拟合问题(Overfitting)。另一种可行的方法是当前节点中的记录数低于一个最小的阀值,那么就停止分割,将max(P(i))对应的分类作为当前叶节点的分类。

 

过拟合

        采用上面算法生成的决策树在事件中往往会导致过拟合。也就是该决策树对训练数据可以得到很低的错误率,但是运用到测试数据上却得到非常高的错误率。过渡拟合的原因有以下几点:

    噪音数据:训练数据中存在噪音数据,决策树的某些节点有噪音数据作为分割标准,导致决策树无法代表真实数据。

    缺少代表性数据:训练数据没有包含所有具有代表性的数据,导致某一类数据无法很好的匹配,这一点可以通过观察混淆矩阵(Confusion Matrix)分析得出。

    多重比较(Mulitple Comparition),这一情况和决策树选取分割点类似,需要在每个变量的每一个值中选取一个作为分割的代表,所以选出一个噪音分割标准的概率是很大的。

 

优化方案

修剪枝叶

        决策树过渡拟合往往是因为太过“茂盛”,也就是节点过多,所以需要裁剪(Prune Tree)枝叶。裁剪枝叶的策略对决策树正确率的影响很大。主要有两种裁剪策略:

前置裁剪

         在构建决策树的过程时,提前停止。那么,会将切分节点的条件设置的很苛刻,导致决策树很短小。结果就是决策树无法达到最优。实践证明这种策略无法得到较好的结果。

后置裁剪

        决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现。这样考虑了减小模型复杂度,决策树生成学习局部模型,而决策树剪枝学习整体的模型,利用损失函数最小原则进行剪枝就是用正则化的极大似然估计进行模型选择。

        设一组叶节点回缩到其父节点之前的整体树的损失函数值比之后的函数值要大,则进行剪枝。这个过程一直进行,直到不能继续为止,最后得到损失函数最小的子树。

RandomForest

        RandomForest是用训练数据随机的计算出许多决策树,形成了一个森林。然后用这个森林对未知数据进行预测,选取投票最多的分类。实践证明,此算法的错误率得到了经一步的降低。这种方法背后的原理可以用“三个臭皮匠定一个诸葛亮”这句谚语来概括。一颗树预测正确的概率可能不高,但是集体预测正确的概率却很高。

 

算法

C4.5

        C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:

1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;

2) 在树构造过程中进行剪枝;

3) 能够完成对连续属性的离散化处理;

4) 能够对不完整数据进行处理。

        C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。

 

决策树的优点

相对于其他数据挖掘算法,决策树在以下几个方面拥有优势:

    决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义。

    对于决策树,数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。

    能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。

    在相对短的时间内能够对大型数据源做出可行且效果良好的结果。

    对缺失值不敏感

    可以处理不相关特征数据

    效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。

决策树的缺点

1)对连续性的字段比较难预测。

2)对有时间顺序的数据,需要很多预处理的工作。

3)当类别太多时,错误可能就会增加的比较快。

4)一般的算法分类的时候,只是根据一个字段来分类。

5)在处理特征关联性比较强的数据时表现得不是太好

点赞