浅析决策树的生长和剪枝

贾蘅
• 阅读 641

简述:
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系,它是一种监督学习。

一.决策树模型
首先说明下什么是决策树呢?决策树是一个类似流程图的树结构:每个内部节点(分支节点/树枝节点)表示一个特征或属性,每个树叶节点代表一个分类。

在决策树的生长过程中主要会存在的问题是:对于选择分支节点的主观性较强。解决办法:利用信息熵或信息增益解决因为人主观判断问题,只需要计算信息熵或信息增益再排序从而正确分类的过程。

信息增益的含义 :划分数据集前后信息发生的变化。

熵:物理学中指物体能量的分布均匀情况,信息熵:对信息的不确定性的度量:公式:H(x)=-sum(plog(p))。信息熵越小,不确定性越小,确定性越大,信息的纯度越高。H(D)是数据集D的熵,计算公式:

Ck是在数据集D中出现k类的数量,N是样本的数量,类别的总数。H(D|A) 是特征A对与数据集D的条件熵,其意义是:在子集Di中Y的分布。计算方法是:

GainA(A的信息增益)=H_All(总体的信息熵)-H(A)(以A节点作为划分节点的信息熵)决策树中分支节点选择:信息增益大的作为分支节点信息增益越大,信息熵越小,信息不确定性越小,确定性越大,纯度越高。综合之后信息增益的公式:

特征A对训练集D的信息增益比gR(D,A)定义为

HA(D)刻画了特征A对训练集D的分辨能力,信息增益率改进由于信息增益偏向特征取值较多的不足之处,使用信息增益率进一步划分决策树。

以上决策算法:ID3算法-信息增益、C4.5算法-信息增益率。决策树剪枝策略: 先剪枝、后剪枝,用于解决过拟合问题。

二.ID3和C4.5划分策略
ID3和C4.5算法的划分思想:根据信息增益或信息增益率选择构建决策树的分支节点,依次递归建树。

决策树构建的基本步骤:

(1)如果所有的属性都被用于划分,直接结束;

(2)计算所有特征的信息增益或信息增益率,选择信息增益较大的(如a节点)值对应的特征进行分类;

(3)如果使用a节点作为划分节点没有划分完成,接下来使用除去a节点之外的其他特征节点中信息增益较大的进一步进行建立决策树。(递归建立决策树)

决策树停止停止生长的条件:

如果属性都用于划分,直接结束;如果还有没有被划分的节点,使用多数表决;
如果所有样本都已经分类,直接结束;
定义最大不纯度进行度量;
定义叶子节点的数目;
定义分支节点包含的样本个数。
三.决策树剪枝
决策树是充分考虑了所有的数据点而生成的复杂树,有可能出现过拟合的情况,决策树越复杂,过拟合的程度会越高。决策树的构建过程是一个递归的过层,所以必须确定停止条件,否则过程将不会停止,树会不停生长。

先剪枝:提前结束决策树的增长。预剪枝降低了过拟合的风险,减少了决策树的训练时间开销和测试时间开销.带来了欠拟合的风险。

后剪枝:是指在决策树生长完成之后再进行剪枝的过程。—— 最小错误剪枝技术(MEP),悲观错误剪枝(MEP)和代价复杂度剪枝(CCP)泛化性能往往优于预剪枝决策树,训练时间开销比未剪枝的决策树和预剪枝的决策树都要大得多。

总结:
使用决策树进行分类的优点是非常直观,便于理解,并且执行效率高,执行只需要一次构建,可反复使用。但是对小规模数据集才更有效,而且在处理连续变量时效果不好,较难预测连续字段,在类别较多时,错误增加的比较快。

点赞
收藏
评论区
推荐文章
大数据
课程安排 一、大数据概述 二、大数据处理架构Hadoop 三、分布式文件系统HDFS 四、分布式数据库HBase 五、MapReduce 六、Spark 七、IPythonNotebook运行PythonSpark程序 八、PythonSpark集成开发环境 九、PythonSpark决策树二分类与多分类 十、PythonSpark支持向量机 十一
Wesley13 Wesley13
3年前
MXNET:丢弃法
除了前面介绍的权重衰减以外,深度学习模型常常使用丢弃法(dropout)来应对过拟合问题。方法与原理为了确保测试模型的确定性,丢弃法的使用只发生在训练模型时,并非测试模型时。当神经网络中的某一层使用丢弃法时,该层的神经元将有一定概率被丢弃掉。设丢弃概率为$p$。具体来说,该层任一神经元在应用激活函数后,有$p$的概率自乘0,有
Stella981 Stella981
3年前
Python算法之决策树利器——Graphviz
解密思想和方法,谁都会写程序!!(https://oscimg.oschina.net/oscnet/d138dbc753d10e682a48ce9b129284e088b.gif)!(https://oscimg.oschina.net/oscnet/466e1fdae130f31f5d9a1806e7e207907
Wesley13 Wesley13
3年前
MesaTEE GBDT
!(https://static.oschina.net/uploads/space/2020/0702/190947_Fixv_4501957.jpg)GBDT(GradientBoostingDecisionTree,梯度提升决策树)是工业界广泛应用的机器学习算法,而XGBoost则是著名华人学者陈天奇发起并被工业界广泛应用的开源GBDT工
Stella981 Stella981
3年前
LightGBM 算法原理
LightGBM的动机GBDT(GradientBoostingDecisionTree)是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT在工业界应用广泛,通常被用于点击率预测,搜索排序等任务而GBDT在每一次迭代的时
Wesley13 Wesley13
3年前
KNN分类算法原理分析及代码实现
1、分类与聚类的概念与区别分类:是从一组已知的训练样本中发现分类模型,并且使用这个分类模型来预测待分类样本。目前常用的分类算法主要有:朴素贝叶斯分类算法(NaïveBayes)、支持向量机分类算法(SupportVectorMachines)、KNN最近邻算法(kNearestNeighbors)、神经网络算法(NNet)以及决策树(De
Stella981 Stella981
3年前
GPU上的随机森林:比Apache Spark快2000倍
作者|AaronRichter编译|VK来源|TowardsDataScience随机森林是一种机器学习算法,以其鲁棒性、准确性和可扩展性而受到许多数据科学家的信赖。该算法通过bootstrap聚合训练出多棵决策树,然后通过集成对输出进行预测。由于其集成特征的特点,随机森林是一种可以在分布式计算环境中实现的算法。树可以在集群中跨进程和机器并
Wesley13 Wesley13
3年前
巧用决策树消灭 if
前言最近公司在搞技术创新,老板把一群程序员拉到山上,锁在酒店会议室里憋了一晚总结出来几条意见,其中之一就是之所以每次产品改需求我们都会苦哈哈的加班写bug,主要不是因为产品今天提的需求,昨天就该上线,而是因为我们没有一种无需硬编码就能修改系统逻辑的方法。大家一致同意改变命运的关键在于开发一个可视化的规则编辑和执行引擎。我一听这不就是我N年前搞过的决
大数据——决策树(decision tree)
大数据————决策树(decisiontree)决策树(decisiontree):是一种基本的分类与回归方法,主要讨论分类的决策树。在分类问题中,表示基于特征对实例进行分类的过程,可以认为是ifthen的集合,也可以认为是定义在特征空间