3、决策树

  决策树是一种类似于流程图的树结构。有二元分支树和多分支树两种。内部节点表示在一个属性上的测试,分支是代表一个测试输出,树节点代表类和类分布。

  决策树的生成:构建阶段是在开始时先把所有的训练样本放在根节点,然后通过选定的属性来划分样本(必须是离散值),树剪枝阶段是检测和去除训练数据中的噪声和孤立点。

是属于有监督的学习,用于对位置样本进行分类,但是也可以用来聚类。

决策树算法:HUNT算法、信息增益(ID3)、增益比率(C4.5)、基尼指数

Hunt算法:假设Dt是节点t相关联的训练记录集

  算法步骤:第一种情况是Dt所有记录都属于同一个类Yt,则t是叶节点,用Yt表示,二如果Dt中包含属于多个类的记录,则选择一个属性测试条件,将记录划分成较小的子集。对于测试条件的每个输出,创建一个子结点,并根据测试结果将Dt中的记录分布到子结点中,然后,对于每个子节点,递归的调用该算法。

Hunt算法采用贪心策略构建决策树,在选择划分数据的属性时,采取一系列局部最优决策来构造决策树。

怎样为不同类型的属性指定测试条件?

  依赖于属性的类型分为标称、序数和连续

  依赖于划分的路数分为两路划分和多路划分

  基于标称属性的分裂:多路划分,划分数(输出数)取决于该属性不同属性值的个数,有多少种属性就有多少个划分数;     两路划分,划分数是2 ,这种划分要考虑到创建K个属性值的二元化分的所有2k-1-1种方法,即把一种单独拿出,其他的放在一起作为一种属性。

  基于序数属性的划分:他的多路划分和标称属性一致,但是其两路划分要注意其他属性放在一起作为一种属性时要保持他序数的有序性,比如{小,中}——{大}、{小,大}——{中}、{中、大}——{小},满足这种顺序。

  基于连续属性的划分:这种划分相当于划分成不同的区间来看,多路划分:Va<X<Va+1(a=1...k),二元化分(A<V)或(A>=V)。

怎样评估每种测试条件?

  选择最佳划分的度量通常是根据划分后子结点的不纯性的程度。不纯性的程度越低,类分布就越倾斜

结点不纯性的度量

1、Gini   

给定结点t的Gini值计算

当类分布均衡时,Gini值达到最大值(1-1/nc),相反当只有一个类时,Gini值达到最小值0

计算Gini值的例子

 

对于二元属性,结点被划分成两个部分,得到的GINI值越小,这种划分越可行.
对于标称属性,一般多路划分的Gini值比二元划分小,这一结果并不奇怪,因为二元划分实际上合并了多路划分的某些输出,自然降低了子集的纯度。

连续属性,计算每个候选点v的Gini指标,并从中选择具有最小值的候选划分点。

连续属性降低计算复杂性的方法:将记录进行排序,从两个相邻的排过序的属性值之间选择中间值作为划分点,计算每个候选点的Gini值,时间复杂度为nlogn

 

2、Entropy

熵:

性质:  

非负性:H大于等于0,连续性:H对任意q连续,极值性:当q都等于1\K时 H达到最大值logK

基于给定结点t的Entropy计算:

当类分布均衡时,Entropy值达到最大值(log nc),相反当只有一个类时,Gini值达到最小值。

计算Entropy的例子

3、classification error

增益率:在具有大量不同值的属性时,熵和Gini指标不能有效划分相关联的记录,这是需要用到信息增益率。

classification error值计算公式

 

如何停止分裂过程:

  1、当所有的记录属于同一类时,停止分裂,2、当所有的记录都有相同的属性时,停止分裂、3、提前终止树的生长

 

三种决策树

CART:基本的决策树算法

ID3:利用信息增益熵,树采用二叉树,哪个属性在分裂中产生的信息增益最大就选择这个属性作为分裂属性。停止准则是所有的记录属于同一类时,停止分裂,或者当所有的记录都有相同的属性时,停止分裂。

C4.5:ID3的改进版本,信息增益率,采用多重分支和剪枝技术。

 ID3和C4.5区别:

ID3最初假设数据集的属性必须是离散的,如果有连续属性,需要采用划分区间的方法来离散化,但是C4.5是采用另外一种方法来实现属性的离散化,。对于样本缺失值的处理也不同,ID3是直接将缺省值的样本抛弃,C4.5是根据其他已知属性值来计算一个有缺失值的样本属于某个列别的概率来把它分类。

 

 

决策树特点:

1、决策树是一种构建分类模型的非参数方法
2、不需要昂贵的的计算代价
3、决策树相对容易解释
4、决策树是学习离散值函数的典型代表
5、决策数对于噪声的干扰具有相当好的鲁棒性
6、冗余属性不会对决策树的准确率造成不利影响
7、数据碎片问题。随着数的生长,可能导致叶结点记录数太少,对于叶结点代表的类,不能做出具有统计意义的判决
8、子树可能在决策树中重复多次。使决策树过于复杂

 

分类模型的误差:

训练误差和泛化误差,训练误差是在训练记录上误分类样本比例,泛化误差是模型在未知记录上的期望误差。一个好的分类模型必须具有低训练误差和低泛化误差。

过分拟合:当训练数据拟合太好的模型,其泛化误差可能比具有较高训练误差的模型高,这种情况成为模型过分拟合。

当决策树很小时,训练和检验误差都很大,这种情况称为模型拟合不足。出现拟合不足的原因是模型尚未学习到数据的真实结构。
随着决策树中结点数的增加,模型的训练误差和检验误差都会随之下降。
当树的规模变得太大时,即使训练误差还在继续降低,但是检验误差开始增大,导致模型过分拟合。

导致过分拟合的原因:

1、噪声导致的过分拟合

2、缺乏代表性样本导致的过分拟合,根据少量训练记录做出分类决策的模型也容易受过分拟合的影响

处理决策树中的过分拟合:

  先剪枝:树增长算法在产生完全拟合整个训练数据集的之前就停止决策树的生长,为了做到这一点,需要采用更具限制性的结束条件。当结点的记录数少于一定阈值,则停止生长,当不纯性度量的增益低于某个确定的阈值时,则停止生长 (e.g., information gain)。

  缺点:很难为提前终止选取正确的阈值:

阈值太高,导致拟合不足
阈值太低,导致不能充分解决过分拟合的问题

后剪枝:在该方法中,初始决策树按照最大规模生长,然后进行剪枝的步骤,按照自底向上的方式修剪完全增长的决策树。

  修剪有两种做法:
 用新的叶结点替换子树,该叶结点的类标号由子树下记录中的多数类确定
用子树中最常用的分支代替子树。

先剪枝和后剪枝的比较:

  与先剪枝相比,后剪枝技术倾向于产生更好的结果。因为不像先剪枝,后剪枝是根据完全增长的决策树作出的剪枝决策,先剪枝则可能过早终止决策树的生长。然而,对于后剪枝,当子树被剪掉后,生长完全决策树的额外开销就被浪费了。

 

度量:

ROC曲线:

ROC曲线是显示分类器真正率(TPR)和假正率(FPR)之间折中的一种图形化方法。
ROC 曲线上有几个关键点,它们有公认的解释:
(TPR=0,FPR=0):把每个实例都预测为负类的模型
(TPR=1,FPR=1):把每个实例都预测为正类的模型
(TPR=1,FPR=0):理想模型

 

 

交互验证:是一种模型的评估方法。在训练开始之前,预留一部分数据,而在训练之后,使用这部分数据对学习的结果进行验证的方法叫做交互验证。交互验证最简单的方法是两分法,将数据集划分为两个独立子集,一个称为训练集,一个称为测试集。另一种方法是K 次折叠交互验证,将数据集划分为K 个子集,留取一个作为测试集,其余K-1 个作为训练集,最后还对数据子集的错误数计算平均值。

posted @ 2019-02-16 14:29  缄默1996  阅读(730)  评论(0编辑  收藏  举报