机器学习之决策树

一、决策树概念

决策树是一种预测模型,代表的是对象属性与对象值之间的映射关系;决策树是一种树形结构, 其中每个内部节点表示一个属性的测试,每个分支表示一个测试输出,每个叶节 点代表一种类别;决策树是一种非常常用的有监督的分类算法。

决策树的决策过程就是从根节点开始,测试待分类项中对应的特征属性,并按照其值选择输出分支,直到叶子节点,将叶子节点的存放的类别作为决策结果。

决策树分为两大类:分类树和回归树,前者用于分类标签值,后者用于预测连续值,常用算法有ID3、C4.5、CART等

 

二、决策树构建过程

决策树算法的重点就是决策树的构造;决策树的构造就是进行属性选择度量,确定各个特征属性之间的拓扑结构(树结构);构建决策树的关键步骤就是分裂属性,分裂属性是指在某个节点按照某一类特征属性的不同划分构建不同的分支,其目标就是让各个分裂子集尽可能的'纯 '(让一个分裂子类中待分类的项尽可能的属于同一个类别)。

决策树学习过程

  • 特征选择

  • 决策树生成:递归结构,对应于模型的局部最优

  • 决策树剪枝:缩小树结构规模、缓解过拟合,对应于模型的全局选择

构建步骤如下:

  1. 将所有的特征看成一个一个的节点;

  2. 遍历每个特征的每一种分割方式,找到最好的分割点;将数据划分为不同的子节点,eg: N1、 N2....Nm;计算划分之后所有子节点的'纯度'信息;

  3. 对第二步产生的分割,选择出最优的特征以及最优的划分方式;得出最终的子节点: N1、N2....Nm

  4. 对子节点N1、N2....Nm分别继续执行2-3步,直到每个最终的子节点都足够'纯'。

三、信息指标

判断每个子节点足够'纯',就需要一个判断标准,这就引入了信息增益

首先了解信息熵的概念

信息量:指的是一个样本/事件所蕴含的信息,如果一个事件的概率越大,那么就可以认为该事件所蕴含的信息越少。极端情况下,比如:“太阳从东方升起”,因为是确定事件,所以不携带任何信息量。

信息熵:一个系统越是有序,信息熵就越低,一个系统越是混乱,信息熵就越高,所以信息熵被认为是一个系统有序程度的度量。

信息熵就是用来描述系统信息量的不确定度。

H(X)就叫做随机变量X的信息熵;

High Entropy(高信息熵):表示随机变量X是均匀分布的,各种取值情况是等概率出现的。

Low Entropy(低信息熵):表示随机变量X各种取值不是等概率出现。可能出现有的事件概率很大,有的事件概率很小。

给定条件X的情况下,随机变量Y的信息熵就叫做条件熵

给定条件X的情况下,所有不同x值情况下Y的信息熵的平均值叫做条件熵。

 

 

贪心策略:确定贪心指标,在候选方案集合中执行一个让贪心指标最大的方案。不会从全局最优的角度思考问题,近似求解,这个解可能是次有解(sub-optimal)

决策树的贪心指标:

 

信息增益:原来结点的不纯度-子节点不纯度的和

四、决策树的停止条件

 

决策树构建的过程是一个递归的过程,所以必须给定停止条件,否则过程将不会停止,一般情况有两种停止条件:

 

当每个子节点只有一种类型的时候停止构建

 

当前节点中记录数小于某个阈值,同时迭代次数达到给定值时,停止构建过程,此时使用max(p(i))作为节点的对应类型

 

方式一可能会使树的节点过多,导致过拟合(Overfiting)等问题;比较常用的方式是使用方式二作为停止条件。

五、决策树算法及效果评估

 

决策树算法(贪心算法)

 

  • 有监督的学习

 

  • 非参数学习算法

 

  • 自顶向下递归方式构造决策树

 

  • 在每一步选择中都采取在当前状态下最好/优的选择

 

决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程。

 

在决策树算法中,ID3 基于信息增益作为属性选择的度量,C4.5 基于信息增益比作为属性选择的度量,CART 基于基尼指数作为属性选择的度量

 

决策树的效果评估和一般的分类算法一样,采用混淆矩阵来进行计算准确率、召 回率、精确率等指标

 

也可以采用叶子节点的纯度值总和来评估算法的效果,值越小,效果越好。

六、三种常见决策树

ID3算法:基于香农熵增益,缺点:会偏爱取值较多的特征

香农熵增益= 结点的香农熵– 子结点香农熵的带权和

C4.5算法:基于香农熵增益比,缺点:计算复杂度高

香农熵增益比= 参数*香农熵增益 ps:某特征的特征值种类越多,那么参数越小。

CART分类算法:基于基尼指数增益

基尼指数增益= 结点的基尼指数– 子结点的基尼指数的带权和

CART回归算法:基于方差增益

方差增益= 结点的方差– 子结点的方差的带权和

ID3:

ID3算法是决策树的一个经典的构造算法,内部使用信息熵以及信息增益来进行构建;每次迭代选择信息增益最大的特征属性作为分割属性

优点:

决策树构建速度快;实现简单;

缺点:

计算依赖于特征数目较多的特征,而属性值最多的属性并不一定最优

ID3算法不是递增算法

ID3算法是单变量决策树,对于特征属性之间的关系不会考虑

抗噪性差

不足:

只适合小规模数据集,需要将数据放到内存中

使用 ID3 算法构建决策树时,若出现各属性值取值数分布偏差大的情况,分类精度会大打折扣

ID3 算法本身并未给出处理连续数据的方法

ID3 算法不能处理带有缺失值的数据集,故在算法挖掘之前需要对数据集中的缺失值进行预处理

ID3 算法只有树的生成,所以该算法生成的树容易产生过拟合

 

C4.5:

在ID3算法的基础上,进行算法优化提出的一种算法(C4.5);现在C4.5已经是特别经典的一种决策树构造算法;使用信息增益率来取代ID3算法中的信息增益,在树的构造过程中会进行剪枝操作进行优化;能够自动完成对连续属性的离散化处理;C4.5算法在选中分割属性的时候选择信息增益率最大的属性

优点:

产生的规则易于理解

准确率较高

实现简单

缺点:

对数据集需要进行多次顺序扫描和排序,所以效率较低

只适合小规模数据集,需要将数据放到内存中

CART树:

分类与回归树(calssification and regression tree,CART)是在给定输入随机变量 X 条件下输出随机变量 Y 的条件概率分布的学习方法。CART 假设决策树是二叉树,内部结点特征的取值为‘是’和‘否’。这样的决策树等同于递归地二分每个特征,将输入控件即特征空间划分为有限个单元,并在这些单元上确定预测地概率分布。

七、优化

剪枝优化

决策树过渡拟合一般情况是由于节点太多导致的,剪枝优化对决策树的正确率影响是比较 大的,也是最常用的一种优化方式。

Random Forest

利用训练数据随机产生多个决策树,形成一个森林。然后使用这个森林对数据进行预测,选取最多结果作为预测结果。

前置剪枝:在构建决策树的过程中,提前停止。结果是决策树一般比较小,实践证明这种策略无法得到比较好的结果。

后置剪枝:在决策树构建好后,然后再开始裁剪,一般使用两种方式:1)用单一叶子节点代替整个子树,叶节点的分类采用子树中最主要的分类;2)将一个子树完全替代另外一棵子树;后置剪枝的主要问题是计算效率问题,存在一定的浪费情况。

八、决策树优缺点

 

优点:

 

(1) 速度快:计算量相对较小,且容易转化成分类规则。只要沿着树根向下一直走到叶,沿途的分裂

 

条件就能够唯一确定一条分类的谓词。

 

(2) 准确性高:挖掘出的分类规则准确性高,便于理解,决策树可以清晰的显示哪些字段比较重要,

 

即可以生成可以理解的规则。

 

(3)可以处理连续和种类字段

 

(4)不需要任何领域知识和参数假设

 

(5)适合高维数据

 

缺点:

 

(1) 对于各类别样本数量不一致的数据,信息增益偏向于哪些具有更多数值的特征

 

(2) 易于过拟合

 

(3) 忽略属性之间的相关性

 

posted @ 2020-03-22 21:18  lonepine  阅读(412)  评论(0)    收藏  举报