关闭

分类算法:决策树算法

551人阅读 评论(0) 收藏 举报
分类:

一、决策树的定义

决策树是一种对实例进行分类的树形结构,也是一种基本的分类与回归方法。决策树由结点(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)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度:


经验熵为:









0
0
查看评论

分类算法-----决策树

我的照片书  |         第一篇:从决策树学习谈到贝叶斯分类算法、EM、HMM                   &...
  • lphbtm
  • lphbtm
  • 2016-03-11 08:27
  • 2561

决策树分类和预测算法的原理及实现

决策树是一种通过对历史数据进行测算实现对新数据进行分类和预测的算法。简单来说决策树算法就是通过对已有明确结果的历史数据进行分析,寻找数据中的特征。并以此为依据对新产生的数据结果进行预测。 决策树由3个主要部分组成,分别为决策节点,分支,和叶子节点。其中决策树最顶部的决策节点是根决策节点。每一个...
  • czp11210
  • czp11210
  • 2016-04-15 14:36
  • 9847

数据挖掘十大算法之决策树详解(1)

在2006年12月召开的 IEEE 数据挖掘国际会议上,与会的各位专家选出了当时的十大数据挖掘算法( top 10 data mining algorithms )。本博客已经介绍过的位列十大算法之中的5个。本文主要介绍机器学习中的决策树模型。决策树模型是一类算法的集合,在数据挖掘十大算法中,具体的...
  • baimafujinji
  • baimafujinji
  • 2016-11-20 10:51
  • 25873

机器学习(三):分类算法之决策树算法

一、特点 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据 缺点:可能会产生过度匹配问题 适用数据类型:数值型和标称型 二、原理与实现 根据某个特征,划分数据集。如果某个分支下的数据属于同一类型,则无需进一步分割;否则需要重复划分数据子集。而其中最重要的问题就...
  • u012422829
  • u012422829
  • 2016-01-03 18:06
  • 918

决策树归纳分类算法理解

决策树归纳分类算法理解决策树归纳是从类标记的训练数据构建决策树,属于分类领域。遍历根节点到全部叶节点的路径,每条路径都属于一个元组分类。整棵决策树形成分类规则。目前构造决策树的算法包括ID3(iterative dichotomy),C4.5,CART,都基于如下抽象的算法流程,现通过一个详细的数据...
  • u010111016
  • u010111016
  • 2015-11-19 23:37
  • 2116

决策树

决策树(decision tree)
  • u013790563
  • u013790563
  • 2016-03-28 16:21
  • 6430

使用决策树实现分类

决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答yes和no问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择yes还是no),直到所有选择都进行完毕,最终给出正确答案。
  • Gane_Cheng
  • Gane_Cheng
  • 2016-12-29 21:56
  • 5009

数据挖掘十大经典算法之:决策树C4.5 分类算法

C4.5是机器学习算法中的另一个分类决策树算法,它是基于ID3算法进行改进后的一种重要算法,相比于ID3算法,改进有如下几个要点: 用信息增益率来选择属性。ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息,ID3使用的是熵(entropy, 熵是一种不纯度度量准则),也就是熵的变...
  • suibianshen2012
  • suibianshen2012
  • 2015-09-21 16:54
  • 853

R分类算法-决策树算法

决策树(Decision Tree) 它通过对训练样本的学习,并建立分类规则,然后依据分类规则,对新样本数据进行分类预测,属于有监督学习。 优点: 决策树有易于理解和实现; 决策树可处理数值型和非数值型数据;决策树在party包里 install.packages(“party”) ct...
  • lll1528238733
  • lll1528238733
  • 2017-07-24 14:00
  • 152

[机器学习]详解分类算法--决策树算法

前言 算法的有趣之处在于解决问题,否则仅仅立足于理论,便毫无乐趣可言; 不过算法的另一特点就是容易吓唬人,又是公式又是图标啥的,如果一个人数学理论知识过硬,静下心来看,都是可以容易理解的,纸老虎一个,不过这里的算法主要指的应用型算法;但是那些证明和研究算法理论堪称大牛. 现在给大家...
  • BaiHuaXiu123
  • BaiHuaXiu123
  • 2017-02-18 20:30
  • 1684
    个人资料
    • 访问:239053次
    • 积分:4421
    • 等级:
    • 排名:第8049名
    • 原创:209篇
    • 转载:25篇
    • 译文:0篇
    • 评论:16条
    代码库
    博客专栏
    最新评论