概述
决策树是一种基本的分类与回归方法。
决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点。内部结点表示一个特征或属性,叶结点表示一个类。
一 决策树与if-then规则
将决策树转换成if-then规则的过程是这样的:
由决策树的根节点到叶节点的每一条路径构建一条规则
路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。
决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。这就是说:每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。
二 决策树算法
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。开始,构建根结点,将所有训练数据都放在根结点。选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集分到所对应的叶结点中去;如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的结点。如此递归地进行下去,直至所有训练数据子集被基本正确分类,或者没有合适的特征为止。最后每个子集都被分到叶结点上,即都有了明确的类。这就生成了一棵决策树。
决策树学习算法只要由三部分构成:特征选择,决策树生成,决策树的剪枝。
三 特征选择
如果利用一个特征进行分类的结果与随机分类的结果无异,则可以认为这个特征是不具备分类能力的。经验上扔掉这样的特征对决策树学习的精度影响不大。通常特征选择的准则是信息增益和信息增益比。
熵(entropy)
在信息论与概率论中,熵(entropy)用于表示随机变量不确定性的度量。
设X是一个有限状态的离散型随机变量,其概率分布为
则随机变量的熵定义为
熵越大,随机变量的不确定性就越大。
条件熵(conditional entropy)
随机变量给定的条件下,随机变量的条件熵定义为:
其中,。
信息增益(information gain)
信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。
特征A对训练数据集D的信息增益定义为集合D的经验熵与特征A给定条件下D的经验条件熵之差,即
根据信息增益准则进行特征选择的方法是:对训练数据集D,计算其每个特征的信息增益,并比它们的大小,从而选择信息增益最大的特征。
假设训练数据集为D,样本容量为|D|,有个类别为类别的样本个数。某一特征有n个不同的取值。根据特征A的取值可将数据集D划分为n个子集,为的样本个数。并记子集中属于类的样本的集合为为的样本个数。
信息增益的算法如下:
- 输入:训练数据集D和特征A;
- 输出:特征A对训练数据集D的信息增益.
- (1) 计算数据集D的经验熵.
- (2) 计算特征A对数据集D的经验条件熵.
- (3) 计算信息增益
信息增益比(information gain ratio)
以信息增益作为特征选择准则,会存在偏向于选择取值较多的特征的问题。可以采用信息增益比对这一问题进行校正。
特征A对训练数据集D的信息增益比定义为其信息增益与训练集D关于特征A的值的熵之比,即
其中,.
四 决策树的生成
ID3算法
ID3算法的核心是在决策树的各个结点上应用信息增益准则进行特征选择。具体做法是:从根节点开始,对结点计算所有可能特征的信息增益,选择信息增益最大的特征作为结点的特征,并由该特征的不同取值构建子节点;对子节点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或者没有特征可选时为止。
C4.5算法
C4.5算法与ID3算法的区别主要在于它在生产决策树的过程中,使用信息增益比来进行特征选择。
CART算法
CART假设决策树是一个二叉树,它通过递归地二分每个特征,将特征空间划分为有限个单元,并在这些单元上确定预测的概率分布。
CART算法中,对于回归树,采用的是平方误差最小化准则;对于分类树,采用基尼指数最小化准则。
平方误差最小化
假设已将输入空间划分为M个单元,并且在每个单元上有一个固定的输出值,于是回归树可以表示为
当输入空间的划分确定时,可以用平方误差来表示回归树对于训练数据的预测误差。
基尼指数
分类问题中,假设有K个类别,样本点属于第类的概率为,则概率分布的基尼指数定义为
id3不能处理连续值,c4.5和cart 能够处理连续值,划分方法是,如果有x1,x2,x3.....xn 个值,先排顺序,以每两个值之间的中位数为切分点,共有n-1,按照信息增益比或基尼系数选择合适的切分点,且该连续特征也能用到下次的划分。
五 决策树的剪枝
决策树的剪枝通过极小化决策树整体的损失函数来实现。在提高信息增益的基础上,通过对模型的复杂度T施加惩罚,便得到了损失函数的定义:
的大小反映了对模型训练集拟合度和模型复杂度的折衷考虑。剪枝的过程就是当确定时,选择损失函数最小的模型。
具体的算法如下:
1. 计算每个节点的经验熵;
2. 递归地从树的叶节点向上回缩,如果将某一个父节点的所有叶节点合并,能够使得其损失函数减小,则进行剪枝,将父节点变成新的叶节点;
3. 返回2,直到不能继续合并。
最后
以上就是端庄小白菜为你收集整理的决策树一 决策树与if-then规则二 决策树算法三 特征选择四 决策树的生成的全部内容,希望文章能够帮你解决决策树一 决策树与if-then规则二 决策树算法三 特征选择四 决策树的生成所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复