分类算法:决策树算法

原创 2016年05月31日 16:10:50

一、决策树的定义

决策树是一种对实例进行分类的树形结构,也是一种基本的分类与回归方法。决策树由结点(node)有向边(directed edge)组成。结点又分为两种类型:内部结点(internal node)和叶结点(leaf node),内部结点表示一个特征或属性,叶结点表示一个分类。

如下图所示为一个决策树模型:

   

二、决策树的学习

决策树的学习还表示给定特征条件下类的条件概率分布,下面的图示说明了决策树的一条路径对应于划分中的一个单元,在分类时是依据被分类项属于某一类的概率的大小,将其划分到概率较大的那一类中去。

决策树的学习就是从训练数据集中归纳出一组分类规则(这里可以说与if-then规则对应),这组与训练数据集不相矛盾的规则(对应着一棵决策树)可能有多个/可能一个也没有,但我们需要找的是矛盾较小的决策树,同时具有泛化能力。即这组规则对应的模型不公应该对训练数据有很好的拟合,而且对未知数据也有很好的预测。

所以决策树的学习策略是以损失函数为目标函数的最小化,整个学习过程可以分为:特征选择、决策树的生成以及决策树的剪枝三步。


三、决策树学习3步骤

1、特征选择:即选取对训练数据具有分类能力的特征

这里先引入信息增益的概念:

“熵”表示随机变量不确定性的度量,而熵只依赖于X的分布与X具体取值无关,所以可记为如下(可以看到熵越大,随机变量的不确定性就越大)


“条件熵H(Y|X)”表示在已知随机变量X的条件下随机变量Y的不确定性:


“信息增益”特征A对训练数据集D的信息增益g(D,A)定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D)(熵H(Y)与条件熵H(Y|X)之差称为互信息,所以决策树学习过程中的信息增益也就是我们所说的训练集中类与牲的互信息):


有了上面的概念,就可以根据信息增益准则进行特征的选择:对训练集D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。以实际例子说明,如下表希望通过所给的训练数据学习一个贷款申请的决策树,用以对未来贷款申请进行分类,即当新客户提出贷款申请时,根据申请人的特征利用决策树决定是否批准贷款申请


由上表可知一共有4个特征可供选择:年龄、是否有工作、是否有自己的房子以及信贷情况,任何选取一个特征都可以进行分类,问题是选取啊个特征分类更好呢?

(1)计算经验熵:

(2)分别计算四个特征对数据集D的信息增益(以A1、A2、A3和A4表示年龄、是否有工作、是否有自己的房子和信贷情况),则有以下:


由上面的结果清楚得到特征A3的信息增益值最大,所以第一次选择特征A3作为最优特征。

'''

以信息增益作为划分训练集的特征时,存在偏向于选择取值较多的特征的问题,而使用信息增益比的话可以进行校正。信息增益比定义为:特征A对训练集D的信息增益比gr(D,A)定义为其信息增益g(D,A)与训练集D关于特征A的值的熵HA(D)之比:


'''

2、决策树生成

理解了上面的东东后,决策树的生成分为两种ID3和C4.5算法

(1)ID3算法:在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树

从根结点开始,对各特征计算信息增益,选择信息增益最大的特征作为结点特征,由该特征的不同值再建立子结点;再对子结点递归地调用以上方法,构建决策树;直到所有特征信息增益均很小或没有特征可以选择为止:


(2)C4.5算法:与ID3算法类似,只是在生成过程选择信息增益比来选择特征


3、决策树剪枝:以上方法生成的决策树可能对训练集数据有很好的分类能力,而对于新的未知数据却分类效果不好,这就是所谓的过拟合现象。因此可以对生成的决策树自下而上进行剪枝,即去掉过于细分的叶结点,使其回退到父结点,甚至更高的结点,然后将父结点或更高的结点改为新的叶结点,从而使其具有更好的泛化能力。

决策树的剪枝通过极小化决策树的整体损失函数(也称代价函数)来实现。损失函数如下:

即:

C(T)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度:


经验熵为:









版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

基于决策树系列算法(ID3, C4.5, CART, Random Forest, GBDT)的分类和回归探讨

现在的r或者spark集成的机器学习包里面,基于决策树的算法都分回归或者分类。而实际这些回归可能和我们平常的理解存在一些偏差,因此写下此文一起探讨! 决策树常见算法有以下几种: ID3算法主要...

数据挖掘系列(6)决策树分类算法

从这篇开始,我将介绍分类问题,主要介绍决策树算法、朴素贝叶斯、支持向量机、BP神经网络、懒惰学习算法、随机森林与自适应增强算法、分类模型选择和结果评价。总共7篇,欢迎关注和交流。   这篇先介绍...

决策树分类算法和应用

  • 2015-03-20 22:11
  • 1.12MB
  • 下载

决策树分类算法(监督式)

没有那么难的算法,竟然也看了两个晚上,果然上了年纪。。 其实我是把这个算法到底是为了干什么没抓住。这个算法就是为了分类!!!目标举例来说,我想知道我应该佩戴哪种眼镜,那么树脂的,玻璃的,这个就是最终...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)