决策树(ID3,C4.5,CART)

1. 决策树概念

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

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

分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点。内部结点表示一个特征或属性,叶结点表示一个类。

决策树(Decision Tree),又称判定树,是一种以树结构(包括二叉树和多叉树)形式来表达的预测分析模型。

  • 通过把实例从根节点排列到某个叶子节点来分类实例

  • 叶子节点即为实例所属的分类

  • 树上每个节点说明了对实例的某个属性的测试,节点的每个后继分支对应于该属性的一个可能值

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

2 .决策树构建过程

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

决策树学习过程

  • 特征选择

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

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

构建步骤如下:

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

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

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

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

3.决策树算法及效果评估

决策树算法(贪心算法)

  • 有监督的学习

  • 非参数学习算法

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

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

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

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

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

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

4.三种常见决策树

4.1 ID3

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

ID3算法优缺点

优点:

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

缺点:

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

ID3算法不是递增算法

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

抗噪性差

不足:

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

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

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

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

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

 

ID3使用建议:

    • 当我们数据中的 feature 较多时,一定要有足够的数据量来支撑我们的算法,不然的话很容易

overfitting

    • PCA 是一种避免高维数据 overfitting 的办法。

    • 从一棵较小的树开始探索,用 export 方法打印出来看看。

    • 善用 max_depth 参数,缓慢的增加并测试模型,找出最好的那个 depth。

    • 善用 min_samples_split 和 min_samples_leaf 参数来控制叶子节点的样本数量,防止 overfitting。

    • 平衡训练数据中的各个种类的数据,防止一个种类的数据 dominate。

4.2 C4.5

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

相比 ID3 算法的改进:

    • 使用信息增益比例而非信息增益作为分裂标准

    • 处理含有带缺失值的样本方法为将这些值并入最常见的某一类中或以最常用的值代替

    • 处理连续值属性

    • 规则的产生:规则集存储于一个二维数组中,每一行代表决策树的一个规则

    • 交互验证:训练开始之前,预留一部分数据,训练之后,使用这部分数据对学习的结果进行验证

优点:

产生的规则易于理解

准确率较高

实现简单

缺点:

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

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

4.3 CART树

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

2.决策树的生成就是递归地构建二叉决策树的过程,对回归树用平方误差最小化准则,对分类树用GINI 指标(基尼指数)最小化准则进行特征选择,生成二叉树。

 

使用基尼系数作为数据纯度的量化指标来构建的决策树算法就叫做 CART(Classification And Regression Tree,分类回归树)算法。CART算法使用 GINI增益作为分割属性选择的标准,选择GINI增益最大的作为当前数据集的分割属性;可用于分类和回归两类问题。强调备注:CART构建是二叉树。

ID3和C4.5算法均只适合在小规模数据集上使用

ID3和C4.5算法都是单变量决策树

当属性值取值比较多的时候,最好考虑C4.5算法,ID3得出的效果会比较差

决策树分类一般情况只适合小数据量的情况(数据可以放内存)

CART算法是三种算法中最常用的一种决策树构建算法。

三种算法的区别仅仅只是对于当前树的评价标准不同而已,ID3使用信息增益、

C4.5使用信息增益率、CART使用基尼系数。

CART算法构建的一定是二叉树,ID3和C4.5构建的不一定是二叉树。

5.决策树优化

剪枝优化

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

Random Forest

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

6.决策树剪枝

决策树的剪枝是决策树算法中最基本、最有用的一种优化方案,主要分为两大类:

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

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

后剪枝总体思路(交叉验证):

由完全树T0开始,剪枝部分节点得到T1,在此剪枝得到T2.....直到仅剩树根的树Tk在验证数据集上对这k+1个树进行评价,选择最优树Ta(损失函数最小的树)

7.决策树优缺点

优点:

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

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

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

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

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

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

(5)适合高维数据

缺点:

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

(2) 易于过拟合

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

 

posted @ 2020-04-22 23:08  mls12  阅读(104)  评论(0)    收藏  举报