决策树算法理论基础

1. 构建决策树

决策树构建的3个步骤:
(1)特征选择
(2)决策树生成
(3)决策树剪枝
构建步骤如下:

1.构建根节点,所有的数据起初都在根节点上。
2.选取最优特征,通过这一特征将训练数据分割成子集。分割后,如果这一子集已经被较好的分类,则该子集形成叶节点;反之,则对该子集进一步分类,该子集只作为中间节点存在。
3.递归至所有样本都被较好的分类。(分类优劣标准见后)

1.1 特征选择

特征选择标准:找出局部最优特征进行切分,切分后的效果是分区数据越来越纯,衡量纯度使用的是熵、基尼系数和方差。其中熵和基尼系数针对离散型特征;方差针对连续型特征

(1)熵与条件熵

分类问题中一个离散变量的概率分布为,P(X=xi) = Pi,则随机变量X的熵为 H(X) = -∑ Pi * logPi。如果X只取两个值0和1,此时 P(X=1) = p,P(X=0) = 1-p,则对应的熵为 H(x) = -p * logp + (1-p) * log(1-p)。

进一步引出条件熵的概念,随机变量X和Y,二者的联合分布为 P(X=xi, Y=yj) = Pij,条件熵H(Y|X)定义为 H(Y|X) = P(X=xi) * P(X|Y),其中 P(X=xi) = ∑P(X=xi,Y)。

求熵的公式中的概率由数据估计得到时,称为经验熵;条件熵中的概率由数据估计得到,则称为经验条件熵

对于一个数据集D,经验熵H(D)用于刻画数据集的不确定度,当数据集的所有数据样本都属于同一类别时,H(D) = 0。当使用特征A对数据集进行分类,分类后的信息增益用 g(D,A)表示,其中 g(D,A) = H(D) - H(D|A)。信息增益描述的是经过某特征进行分类后不确定性减少的量

引用西瓜书的一段原文,说明具体使用某一特征有多个取值时信息增益的计算方式,
在这里插入图片描述
这个信息增益的计算公式很直观很关键。下面的例子源于西瓜书的西瓜数据2.0,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是,信息增益的不足之处在于,一般情况下,取值较多的特征比取值较少的特征信息增益大。所以进一步优化,使用信息增益比对分类效果进行衡量。
在这里插入图片描述

(2)基尼系数(Gini)

在这里插入图片描述

(3)方差(用于连续特征值)

连续值的处理使用的是二分法(bi-partition),特征A从小到大排列一共有m个值,记为a1, a2, a3,……, am。总共有m-1个划分点,可表示为 ,
在这里插入图片描述
其中i∈[1, m-1]。求取每个划分点划分后得到的两个组的方差之和,方差最小的划分点是最优的划分点。

(4)当数据集特征存在数据缺失*

数据缺失是决策树问题常常遇见的事情,如果将所有有缺失情况的记录舍去会丢掉很多重要信息,此时可以选择添加权重来计算数据的信息增益(离散型特征和连续性特征都适用)。

当数据存在缺失的时候,需要考虑如下两个问题,

1.如何在存在缺失值的情况下选取最好的划分属性。
2.当确定了划分属性之后,样本在该属性上的值未知时该如何划分该样本。

针对第一个问题
在这里插入图片描述
针对第二个问题
在这里插入图片描述

1.2 决策树生成

决策树生成算法中最典型的是ID3和C4.5算法,两个算法都是用于分类,二者的区别是在特征选择的时候,ID3使用信息增益作为特征选择的度量;而C4.5则采用信息增益比作为特征选择度量。

C4.5算法在一定程度上可以视为ID3的改进版,继承了ID3的优点并在一下几方面进行了改进:

(1)使用信息增益比进行特征优劣的衡量,一定程度上克服了取值多的特征常常具有较少的熵的不公平比较现象。
(2)在树的构造过程中进行剪枝。
(3)能够对连续特征进行离散化处理。
(4)能够对有缺失值的数据进行处理。

C4.5的优点是在特征选择方面具有较高的准确性。相较于ID3,其计算量大,且在处理连续型变量的时候多次对特征值进行排序,导致计算量大,算法效率较低。此外C4.5只适用于能够在内存中储存的数据,超出内存容量则无法进行建树。

决策树的生成可能只用到特征集中的部分特征。C4.5和 ID3两个算法只有树的生成算法,所以容易产生过拟合

1.3 树剪枝

1.3.1 误差与复杂度平衡

决策树剪枝的原因是因为训练过程中对特征的提取过于细致造成过拟合现象的发生。决策树剪枝过程是从已生成的决策树上剪掉一些子树或节点。剪枝的思路是在决策树对训练数据的预测误差和数据复杂度之间找到一个平衡。

找到二者之间的平衡使用的类似于回归的正则化,假设一棵训练好的树一共有t个叶节点,每个叶节点的经验熵为H(t),设置一个参数α作为正则化项,
在这里插入图片描述
与线性模型的正则化同理,较大的α对应的是较为简单的模型,较小的α对应较复杂的模型,α等于0时是只考虑了拟合程度,没考虑模型复杂度。
剪枝算法的过程如下:
算法输入:决策树T(未剪枝),参数α
算法输出:决策树Tα

具体步骤:
(1)计算决策树T的每个节点(根节点、中间节点和叶节点)的经验熵。
(2)从树的一组叶节点向上回退,计算在正则化系数为α的时候,退回到父节点前后的损失函数分别为Cα(T)和Cα(T’),如果 Cα(T’)≤Cα(T),则剪去该父节点下的所有叶节点,这个父节点形成新的叶节点。
(3)重复步骤2,直至不能继续。

1.3.2 留出法

以西瓜书的例题为例,
在这里插入图片描述
在这里插入图片描述
通过1.2 节的讲解可以得到下面的分类决策树模型,
在这里插入图片描述
剪枝的方式一般有两种,一种是预剪枝,另一种是后剪枝。预剪枝是在决策树生成过程中对每个节点进行划分。后剪枝是先从训练集得到一棵完整的决策树,之后对每个非叶节点进行考察。

预剪枝后剪枝
步骤1对根节点进行分析,根节点中的样本进行划分后,预测准确率是否上升。上升则进行划分,并进行下一步;反之则不划分。首先对节点⑥进行分析,通过判断节点⑥在不划分时是否有预测性能有提升来决定是否进行划分 。如果有提升,则将⑥的叶节点剪去,将其视为新的叶节点。
步骤2假设对根节点以特征"脐部"的不同取值进行划分。得到三个子节点②、③、④。针对每个子节点使用同步骤①一样的方式判断是否进行划分。向上一层考虑节点⑤,方法同步骤①的方法。
步骤3即使不对节点⑤进行剪枝,依旧要向上考虑节点②、③和④,确保能够得到更好地预测效果。

最终两种方法得到的决策树如下,
预剪枝
在这里插入图片描述
后剪枝
在这里插入图片描述
两种方法都是可行的,至于其优劣程度,西瓜书上给出的讲解作为参考,
在这里插入图片描述

1.4 连续值处理

参考西瓜书的方法,这也是CART树在构建时使用的方法,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
与离散属性不同的是:连续属性在当前节点用于划分后,在之后的节点中依旧可以被当做特征进行划分。方法同上,依旧是在当前节点的连续取值中得到一组候选变量。

2. CART算法

CART(classification and regression tree)也是一种决策树模型,相较于ID3和C4.5,它能够用于分类,同时还能够进行回归。与ID3和C4.5分类树相似,CART的生成过程大体分为两步

(1)训练数据生成决策树,该树尽可能的大。
(2)使用验证数据对该树进行剪枝处理。

2.1 CART回归树

CART回归树的生成使用的是平方误差最小化策略。

2.2 CART分类树

CART分类树使用的是基尼系数作为最优分类特征的衡量标准。通过下表对CART回归树和分类树的区别进行说明,
在这里插入图片描述
上面的两行红字分别对应下面的左图和右图,
在这里插入图片描述
在这里插入图片描述

2.3 CART剪枝

在这里插入图片描述
具体的剪枝过程如下,
在这里插入图片描述

3. 多变量决策树

如果将样本的每一个属性视为一个坐标轴,那么一般的决策树的一个特性是其决策得到的分类边界与坐标轴是平行的。以下方的数据集为例,

在这里插入图片描述在这里插入图片描述
依据连续型变量生成决策树的方法,生成的决策树如下,并将其分类边界以图的方式展现,

常规决策树——>分类边界
在这里插入图片描述在这里插入图片描述
分类边界都是与轴平行的,这样使得决策树具有较好的可解释性。上面的情况是很简单的情况,假设存在很多的属性时,决策边界的绘制就是十分复杂的事情,此时可以使用与坐标轴不平行的线条作为决策边界,如下方的红线和蓝线,
在这里插入图片描述
这就是多变量决策树的思路,总结而言就是将不同的特征进行线性组合,每一个节点不再使用某个特定的特征,而是使用一个合适的分类器,假设使用下面的多变量决策树对数据集进行决策,
多变量决策树——>决策边界
在这里插入图片描述
在这里插入图片描述
决策边界不再与坐标轴平行。多变量决策树节点的分类器可以是线性分类器也可以是非线性的分类器。

一般的多变量决策树每个分类节点可能引入的是最普通的最小二乘法的线性分类器,更复杂的是在分类节点上添加感知机或者神经网络。这样可以结合两个算法的优点进行算法设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值