决策树的特性及优缺点

本文详细介绍了决策树的特性,包括停止条件、过拟合问题及其优化方案,如前置裁剪、后置裁剪和RandomForest。同时,讨论了C4.5算法的改进和决策树的优点与缺点,强调了其在数据挖掘中的应用和价值。

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

        决策树(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)在处理特征关联性比较强的数据时表现得不是太好

### 决策树算法的原理 决策树是一种监督学习方法,其目标是通过一系列条件判断将数据划分为不同的类别或预测连续值。它通过对训练集的学习,在节点处选择最佳分割属性,并基于该属性的不同取值创建子节点,直到满足停止条件为止[^1]。 具体来说,决策树的核心在于如何选取最优分裂点。常见的分裂标准包括信息增益、信息增益率和基尼指数等。这些指标衡量的是某个属性作为分裂依据时能够减少不确定性的程度。例如,ID3算法采用信息增益作为分裂准则;C4.5改进了这一策略,引入信息增益率以解决偏向于多值属性的问题;而 CART(Classification and Regression Tree)则主要依赖基尼系数来进行二分操作[^2]。 ```python from sklearn.tree import DecisionTreeClassifier clf = DecisionTreeClassifier(criterion='gini') clf.fit(X_train, y_train) y_pred = clf.predict(X_test) ``` --- ### 决策树算法的优点 1. **直观易懂** 决策树的结构清晰明了,类似于人类的逻辑推理过程,因此非常容易理解与解释。这种特性使得即使是对技术不熟悉的人员也能够轻松掌握模型的工作机制[^2]。 2. **支持多类别划分** 决策树不仅适用于二分类问题,还擅长处理涉及多个类别的复杂分类任务。这得益于其递归分区的本质,允许灵活定义不同层次上的分支规则。 3. **兼容多种特征类型** 不论输入变量是数值型还是类别型,决策树都能有效应对并从中提取有用的信息用于建模[^2]。 --- ### 决策树算法的缺点 尽管具有诸多优势,但决策树也有一定的局限性: 1. **过拟合风险较高** 如果不对树的高度加以控制,则很容易生成过于复杂的树形结构,从而导致对训练样本过度拟合的现象发生。此时,虽然在训练集中表现优异,但在未见过的新数据上泛化能力较差[^1]。 2. **对噪声敏感** 当存在大量异常值或者标签错误的情况时,传统单一决策树可能难以维持较高的准确性。为此,研究者们正在探索提升鲁棒性的新途径[^1]。 3. **局部最优解倾向** 构造过程中每次仅考虑当前状态下最好的切分方式,可能导致最终得到的结果并非全局意义上的最优化方案[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值