就是要你明白机器学习系列--决策树算法之悲观剪枝算法(PEP)

前言

  在机器学习经典算法中,决策树算法的重要性想必大家都是知道的。不管是ID3算法还是比如C4.5算法等等,都面临一个问题,就是通过直接生成的完全决策树对于训练样本来说是“过度拟合”的,说白了是太精确了。由于完全决策树对训练样本的特征描述得“过于精确” ,无法实现对新样本的合理分析, 所以此时它不是一棵分析新数据的最佳决策树。解决这个问题的方法就是对决策树进行剪枝,剪去影响预测精度的分支。常见的剪枝策略有预剪枝(pre -pruning)技术和后剪枝(post -pruning )技术两种。预剪枝技术主要是通过建立某些规则限制决策树的充分生长, 后剪枝技术则是待决策树充分生长完毕后再进行剪枝。由于预剪枝技术运用较少,本系列将着重介绍后剪枝技术,本文将介绍的是悲观剪枝技术。

一、统计学相关知识复习

  1、置信区间:

    设θ‘在大样本下服从E(θ‘) = θ, 标准误差为σ‘的正态分布,那么θ的(1 - α)100%置信区间是:

      θ‘ +/- (Zα/2) σ‘

  2、二项式概率分布:

   均值和方差分别是u = np, σ2=npq ,其中p=每次实验成功的概率, q=1-p。

  3、二项分布的正态逼近

    如果np>=4 且nq>=4 ,二项概率分布p(y)逼近于正态分布。如下图

  

  可以看到P(Y<=2)是在正态曲线下Y=2.5的左端面积。注意到Y=2的左端面积是不合适的,因为它省略了相应于Y=2的一半概率的长方形。为了修正,用连续概率分布去近似离散概率分布,在计算概率之前我们需要将2增加0.5。值0.5称为二项概率分布近似的连续性修正因子,因此

P(Y<=a) 约等于 P(Z<  (a+0.5 - np/ ( npq)1/2)   );

P(Y>=a) 约等于 P(Z> (a-0.5 - np/ ( npq)1/2)   )

  

二、剪枝过程

  对于后剪枝技术,在决策树形成后,最先要做的就是剪枝。后剪枝的剪枝过程是删除一些子树,然后用其叶子节点代替,这个叶子节点所标识的类别通过大多数原则(majority class criterion)确定。所谓大多数原则,是指剪枝过程中, 将一些子树删除而用叶节点代替,这个叶节点所标识的类别用这棵子树中大多数训练样本所属的类别来标识,所标识的类称为majority class ,(majority class 在很多英文文献中也多次出现)。

三、悲观剪枝--Pessimistic Error Pruning (PEP)

  PEP后剪枝技术是由大师Quinlan提出的。它不需要像REP(错误率降低修剪)样,需要用部分样本作为测试数据,而是完全使用训练数据来生成决策树,又用这些训练数据来完成剪枝。决策树生成和剪枝都使用训练集, 所以会产生错分。现在我们先来介绍几个定义。

  T1为决策树T的所有内部节点(非叶子节点),

  T2为决策树T的所有叶子节点,

  T3为T的所有节点,有T3=T1∪T2,

  n(t)为t的所有样本数,

  ni(t)为t中类别i的所有样本数,

  e(t)为t中不属于节点t所标识类别的样本数

  在剪枝时,我们使用

    r(t)=e(t)/n(t)

  就是当节点被剪枝后在训练集上的错误率,而

  , 其中s为t节点的叶子节点。

  在此,我们把错误分布看成是二项式分布,由上面“二项分布的正态逼近”相关介绍知道,上面的式子是有偏差的,因此需要连续性修正因子来矫正数据,有

  r‘(t)=[e(t) + 1/2]/n(t)

  和

  , 其中s为t节点的叶子节点,你不认识的那个符号为 t的所有叶子节点的数目

  为了简单,我们就只使用错误数目而不是错误率了,如下

  e‘(t) = [e(t) + 1/2]

  

  接着求e‘(Tt)的标准差,由于误差近似看成是二项式分布,根据u = np, σ2=npq可以得到

  

  当节点t满足

  

  则Tt就会被裁减掉。

  

四、总结

  在学习机器学习中,由于涉及的知识比较多,面又很广,所以大家一定要把数学,统计学,算法等相关知识学透彻,多总结归纳。而且这些知识一般比较晦涩难懂,但看别人的博客往往由于他人对知识点的理解有误,而导致对读者本人的误导,且博客是不具权威,不保证正确的,所以对机器学习这种严谨的学科更是需要多参考,多阅读特别是文献,甚至是算法原著者的论文。同时对我理解有误的地方,欢迎大家指出,再次表示感谢了。

五、推荐阅读

   想了解其他剪枝算法(REP, MEP, EBP)的可以参考这篇文章http://52weis.com/articles.html?id=718_21

六、参考文献

  A Comparative Analysis of Methods for Pruning Decision Trees 1997(ISSUE)

  决策树的剪枝理论 

  决策树理论

  C4.5决策树

  THE EFFECTS OF PRUNING METHODS ON THE PREDICTIVE ACCURACY OF INDUCED(ISSUE)

  决策树后剪枝算法的研究  范 洁 杨岳湘(ISSUE)

  决策树剪枝方法的比较 魏红宁 2005(ISSUE)

  悲观剪枝算法在学生成绩决策树中的应用 李萍 2014(ISSUE)

  

   

时间: 2024-10-17 21:01:33

就是要你明白机器学习系列--决策树算法之悲观剪枝算法(PEP)的相关文章

机器学习之决策树算法

机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响.决策树是机器学习中最基础且应用最广泛的算法模型.本文介绍了机器学习的相关概念.常见的算法分类和决策树模型及应用.通过一个决策树案例,着重从特征选择.剪枝等方面描述决策树的构建,讨论并研究决策树模型评估准则.最后基于 R 语言和 SPSS 这两个工具,分别设计与实现了决策树模型的应用实例. 机器学习概念  机器学习 (Machine Learning) 是近 20 多年兴起的一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.

吴裕雄--天生自然python机器学习:决策树算法

我们经常使用决策树处理分类问题’近来的调查表明决策树也是最经常使用的数据挖掘算法. 它之所以如此流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它 是如何工作的. K-近邻算法可以完成很多分类任务,但是它最大的缺点就是无法给出数据的内 在含义,决策树的主要优势就在于数据形式非常容易理解. 决策树很多任务都 是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列 规则,机器学习算法最终将使用这些机器从数据集中创造的规则.专家系统中经常使用决策树,

《机器学习实战》基于信息论的三种决策树算法(ID3,C4.5,CART)

============================================================================================ <机器学习实战>系列博客是博主阅读<机器学习实战>这本书的笔记,包含对其中算法的理解和算法的Python代码实现 另外博主这里有机器学习实战这本书的所有算法源代码和算法所用到的源文件,有需要的留言 如需转载请注明出处,谢谢 ======================================

[转]机器学习——C4.5 决策树算法学习

1. 算法背景介绍 分类树(决策树)是一种十分常用的分类方法.它是一种监管学习,所谓监管学习说白了很简单,就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类.这样的机器学习就被称之为监督学习.C4.5分类树就是决策树算法中最流行的一种.下面给出一个数据集作为算法例子的基础,比如有这么一个数据集,如下: 我们将以这个数据集作讨论的基础.进行分类的目的就是根据某一天的天气状态,如天气,温度,湿度,是否刮风,来

决策树算法原理

转载于:http://www.cnblogs.com/pinard/p/6050306.html (楼主总结的很好,就拿来主义了,不顾以后还是多像楼主学习) 决策树算法在机器学习中算是很经典的一个算法系列了.它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林.本文就对决策树算法原理做一个总结,上篇对ID3, C4.5的算法思想做了总结,下篇重点对CART算法做一个详细的介绍.选择CART做重点介绍的原因是scikit-learn使用了优化版的CART算法作为其决策树算法

决策树算法(一)

决策树算法在机器学习中算是很经典的一个算法系列了.它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林.本文就对决策树算法原理做一个总结,上篇对ID3, C4.5的算法思想做了总结,下篇重点对CART算法做一个详细的介绍.选择CART做重点介绍的原因是scikit-learn使用了优化版的CART算法作为其决策树算法的实现. 1. 决策树ID3算法的信息论基础 机器学习算法其实很古老,作为一个码农经常会不停的敲if, else if, else,其实就已经在用到决策树的思

决策树算法-信息熵-信息增益-信息增益率-GINI系数-转

1. 算法背景介绍 分类树(决策树)是一种十分常用的分类方法.他是一种监管学习,所谓监管学习说白了很简单,就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类.这样的机器学习就被称之为监督学习.分类本质上就是一个map的过程.C4.5分类树就是决策树算法中最流行的一种.下面给出一个数据集作为算法例子的基础,比如有这么一个数据集,如下: 这个Golf数据集就是我们这篇博客讨论的基础.我们分类的目的就是根据某一

机器学习回顾篇(8):CART决策树算法

注:本系列所有博客将持续更新并发布在github和gitee上,您可以通过github.gitee下载本系列所有文章笔记文件. 1 引言 上一篇博客中介绍了ID3和C4.5两种决策树算法,这两种决策树都只能用于分类问题,而本文要说的CART(classification and regression tree)决策树不仅能用于分类问题,也能用于回归问题. 与ID3算法和C4.5算法相比,CART 还有个特性就是其所有非叶子结点都只有两个子树,也就是说在根据特征属性分裂数据集时,无论该特征属性有多

机器学习算法之决策树算法

该节主要是把<机器学习实战>书上第三章关于决策树的相关代码照样子实现了一遍.对其中一些内容作了些补充,对比ID3与C45区别,同时下载了一个大样本集实验决策树的准确率. 首先,对于决策树的原理,很多很好的博客值得一看: 从决策树学习谈到贝叶斯分类算法.EM.HMM 决策树算法总结 这两个已经详解了关于决策树的所有,慢慢品读吧. 下面是书上外加添加的部分程序,首先是tree.py里面的程序: import operator from math import log # calculate the