决策树的经典算法_ID3与C4_5
决策树模型ID3C4.5CART算法比较

决策树模型ID3C4.5CART算法⽐较决策树模型在监督学习中⾮常常见,可⽤于分类(⼆分类、多分类)和回归。
虽然将多棵弱决策树的Bagging、Random Forest、Boosting等tree ensembel 模型更为常见,但是“完全⽣长”决策树因为其简单直观,具有很强的解释性,也有⼴泛的应⽤,⽽且决策树是tree ensemble 的基础,值得好好理解。
⼀般⽽⾔⼀棵“完全⽣长”的决策树包含,特征选择、决策树构建、剪枝三个过程,这篇⽂章主要是简单梳理⽐较ID3、C4.5、CART算法。
《统计学习⽅法》中有⽐较详细的介绍。
⼀、决策树的优点和缺点优点:1. 决策树算法中学习简单的决策规则建⽴决策树模型的过程⾮常容易理解,2. 决策树模型可以可视化,⾮常直观3. 应⽤范围⼴,可⽤于分类和回归,⽽且⾮常容易做多类别的分类4. 能够处理数值型和连续的样本特征缺点:1. 很容易在训练数据中⽣成复杂的树结构,造成过拟合(overfitting)。
剪枝可以缓解过拟合的负作⽤,常⽤⽅法是限制树的⾼度、叶⼦节点中的最少样本数量。
2. 学习⼀棵最优的决策树被认为是NP-Complete问题。
实际中的决策树是基于启发式的贪⼼算法建⽴的,这种算法不能保证建⽴全局最优的决策树。
Random Forest 引⼊随机能缓解这个问题⼆、ID3算法ID3由Ross Quinlan在1986年提出。
ID3决策树可以有多个分⽀,但是不能处理特征值为连续的情况。
决策树是⼀种贪⼼算法,每次选取的分割数据的特征都是当前的最佳选择,并不关⼼是否达到最优。
在ID3中,每次根据“最⼤信息熵增益”选取当前最佳的特征来分割数据,并按照该特征的所有取值来切分,也就是说如果⼀个特征有4种取值,数据将被切分4份,⼀旦按某特征切分后,该特征在之后的算法执⾏中,将不再起作⽤,所以有观点认为这种切分⽅式过于迅速。
ID3算法⼗分简单,核⼼是根据“最⼤信息熵增益”原则选择划分当前数据集的最好特征,信息熵是信息论⾥⾯的概念,是信息的度量⽅式,不确定度越⼤或者说越混乱,熵就越⼤。
2.决策树(DecisionTree)-ID3、C4.5、CART比较

2.决策树(DecisionTree)-ID3、C4.5、CART⽐较1. 前⾔上⽂介绍了决策树原理和算法,并且涉及了ID3,C4.5,CART3个决策树算法。
现在⼤部分都是⽤CART的分类树和回归树,这三个决策树算法是⼀个改进和补充的过程,⽐较它们之间的关系与区别,能够更好的理解决策时算法。
2. ID3算法2.1 ID3原理ID3算法就是⽤信息增益⼤⼩来判断当前节点应该⽤什么特征来构建决策树,⽤计算出的信息增益最⼤的特征来建⽴决策树的当前节点。
算法具体过程看2.2 ID3的不⾜ID3算法虽然提出了新思路,但是还是有很多值得改进的地⽅。
1. ID3没有考虑连续特征,⽐如长度,密度都是连续值,⽆法在ID3运⽤。
这⼤⼤限制了ID3的⽤途。
2. ID3采⽤信息增益⼤的特征优先建⽴决策树的节点。
很快就被⼈发现,在相同条件下,取值⽐较多的特征⽐取值少的特征信息增益⼤。
⽐如⼀个变量有2个值,各为1/2,另⼀个变量为3个值,各为1/3,其实他们都是完全不确定的变量,但是取3个值的⽐取2个值的信息增益⼤。
如果校正这个问题呢?3. ID3算法对于缺失值的情况没有做考虑4. 没有考虑过拟合的问题ID3 算法的作者昆兰基于上述不⾜,对ID3算法做了改进,这就是C4.5算法,也许你会问,为什么不叫ID4,ID5之类的名字呢?那是因为决策树太⽕爆,他的ID3⼀出来,别⼈⼆次创新,很快就占了ID4,ID5,所以他另辟蹊径,取名C4.0算法,后来的进化版为C4.5算法。
下⾯我们就来聊下C4.5算法3. C4.5算法3.1 C4.5对ID3的改进C4.5改进了上⾯ID3的4个问题,C4.5算法流程具体过程看1. 对于ID3不能处理连续特征,C4.5的思路是将连续的特征离散化。
⽐如m个样本的连续特征A有m个,从⼩到⼤排列为a1,a2,...,a m,则C4.5取相邻两样本值的平均数,⼀共取得m−1个划分点,其中第i个划分点Ti表⽰为:T i=a i+a i+12。
决策树的经典算法:ID3与C4.5

第1 7卷第 5期
四川文理 学 院学报 ( 自然 科学 )
20 07年 9月
Sp20 e .0 7
V 11 N . Sc u n U ie s yo t a d S i c o ra ( trl ce c dt n o.7 o 5 i a nv ri f s n c n eJ u n lNau a i eE io ) h t Ar e S n i
大。有大量的学者围绕该算法作 了广泛 的研究 , 并提出了
多种改 进算法 。下 面对 I3 法进行详 细 的叙述 。 D 算 决 策树 的生成过 程也就 是一个 树的节点 的选择过程 : S p . 算所有 属性 的信息 增 益 , t 1计 e 选择 信 息 增 益最 大
的属性 作为根 节点 ; () 1 计算 给定 的训练数据 集分类 的信息 期望 , 记 : 练数 据 集 为 D, 为 k类 , 即 k个 子 集 : , 训 分 也 D,
l 6
, 表示把 训练数 据集 D, 划分为 类 的不 确定性程 度 。
设训 练数据 集分 为两类 : , , D,D ,
若: 训练数据集属于这两类的概率 均为 05这时的不确 ., 定程度最大 , 则对应的期望信息 : :一 Q5・o .: , 2× l o 1 g 若: 训练 数据 集属于这两 类 的概率 均 分别 为 0208 .、 , .
D: … , , ,
3 算 法是决 策树算法 的代表 , ) …在 此之后 的多种 决策树 算 法都是在 I3 法 的基 础上 加 以改进 而 实 现 的。它 在选 D算 择 决策树各 级节点 上 的属 性时 , 择标 准是选 用最 大信 其选 息增益 的属 性 , 就使 得 在 每 一 个 非 叶 节 点 上 进行 测试 这
机器学习总结(八)决策树ID3,C4.5算法,CART算法

机器学习总结(⼋)决策树ID3,C4.5算法,CART算法本⽂主要总结决策树中的ID3,C4.5和CART算法,各种算法的特点,并对⽐了各种算法的不同点。
决策树:是⼀种基本的分类和回归⽅法。
在分类问题中,是基于特征对实例进⾏分类。
既可以认为是if-then规则的集合,也可以认为是定义在特征空间和类空间上的条件概率分布。
决策树模型:决策树由结点和有向边组成。
结点⼀般有两种类型,⼀种是内部结点,⼀种是叶节点。
内部结点⼀般表⽰⼀个特征,⽽叶节点表⽰⼀个类。
当⽤决策树进⾏分类时,先从根节点开始,对实例的某⼀特征进⾏测试,根据测试结果,将实例分配到⼦结点。
⽽⼦结点这时就对应着该特征的⼀个取值。
如此递归对实例进⾏测试分配,直⾄达到叶结点,则该实例属于该叶节点的类。
决策树分类的主要算法有ID3,C4.5。
回归算法为CART算法,该算法既可以分类也可以进⾏回归。
(⼀)特征选择与信息增益准则特征选择在于选取对训练数据具有分类能⼒的特征,⽽且是分类能⼒越强越好,这样⼦就可以提⾼决策树的效率。
如果利⽤⼀个特征进⾏分类,分类的结果与随机分类的结果没有差异,那么这个特征是没有分类能⼒的。
那么⽤什么来判别⼀个特征的分类能⼒呢?那就是信息增益准则。
何为信息增益?⾸先,介绍信息论中熵的概念。
熵度量了随机变量的不确定性,越不确定的事物,它的熵就越⼤。
具体的,随机变量X的熵定义如下:条件熵H(Y|X)表⽰在已知随机变量X的条件下随机变量Y的不确定性,随机变量X给定的条件下随机变量Y的条件熵为H(Y|X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望:信息增益表⽰在已知特征X的情况下,⽽使得Y的信息的不确定性减少的程度。
信息增益的定义式如下:g(D,A)表⽰特征A对训练集D的信息增益,其为集合D的经验熵H(D)与在特征A给定条件下D的经验条件熵H(D|A)之差。
⼀般熵与条件熵之差,称为互信息。
在决策树中,信息增益就等价于训练数据集中的类与特征的互信息。
决策树分类ID3和C4.5原理Java实现

决策树分类ID3和C4.5原理Java实现决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。
其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。
使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
•决策树的构造:•决策树的构造就是通过属性选择来确定拓扑结构。
•构造决策树的关键步骤是分裂属性。
所谓分裂属性就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。
尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。
分裂属性分为三种不同的情况:•1、属性是离散值且不要求生成二叉决策树。
此时用属性的每一个划分作为一个分支。
•2、属性是离散值且要求生成二叉决策树。
此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
•3、属性是连续值。
此时确定一个值作为分裂点split_point,按照>split_point和<=split_point生成两个分支。
ID3ID3算法使用信息增益(IG)或者熵(Entropy)值来确定使用哪个属性进行判定,作为最佳属性。
计算熵的公式为:信息增益的公式如下:缺点:1:ID3算法在选择根节点和内部节点中的分支属性时,采用信息增益作为评价标准。
信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息。
例如ID字段等。
2:ID3算法只能对描述属性为离散型属性的数据集构造决策树C4.5C4.5算法采用信息增益率作为选择分支属性的标准,并克服了ID3算法中信息增益选择属性时偏向选择取值多的属性的不足,并能够完成对连续属性离散化是处理;还能够对不完整数据进行处理。
C4.5算法属于基于信息论Information Theory的方法,以信息论为基础,以信息熵和信息增益度为衡量标准,从而实现对数据的归纳和分类。
决策树模型常用算法

决策树模型常用算法决策树是一种常用的机器学习算法,它可以处理分类和回归问题。
在决策树模型中,通过对输入数据进行一系列的判断和分割,最终得到一个决策路径,用于预测新的数据。
决策树模型的构建过程中,常用的算法包括ID3、C4.5和CART。
下面将分别介绍这三种算法的原理和特点。
1. ID3算法ID3算法是决策树模型中最早被提出的算法之一。
它以信息熵为基础,通过计算每个特征的信息增益来选择最优的划分特征。
具体来说,ID3算法将数据集按照特征属性进行划分,并计算每个特征的信息增益,选择信息增益最大的特征作为当前的划分特征。
然后,对每个划分子集递归地应用ID3算法,直到满足终止条件。
ID3算法的优点是简单易懂,计算效率高。
但它对于缺失值敏感,并且容易产生过拟合的问题。
2. C4.5算法C4.5算法是ID3算法的改进版本。
与ID3算法不同的是,C4.5算法使用信息增益比来选择最优的划分特征,解决了ID3算法对于取值较多的特征有偏好的问题。
信息增益比考虑了特征的取值个数,使得算法更加公平地对待不同特征。
C4.5算法在特征选择上更加准确,同时能够处理缺失值。
但它的计算复杂度较高,对于大规模数据集不太适用。
3. CART算法CART算法是一种常用的决策树算法,既可以处理分类问题,也可以处理回归问题。
与ID3和C4.5算法不同的是,CART算法选择的划分特征是基于基尼指数的。
基尼指数反映了数据集的纯度,基尼指数越小,数据集的纯度越高。
CART算法通过计算每个特征的基尼指数,选择基尼指数最小的特征作为当前的划分特征。
然后,对每个划分子集递归地应用CART 算法,直到满足终止条件。
CART算法的优点是可以处理连续特征和缺失值,并且生成的决策树具有较高的准确性。
但它的计算复杂度较高,且生成的决策树结构相对复杂。
决策树模型常用的算法包括ID3、C4.5和CART。
不同的算法在特征选择和处理缺失值上有所区别,根据具体的应用场景选择合适的算法可以提高决策树模型的准确性和效率。
决策树的经典算法ID3与C45

决策树的经典算法ID3与C45决策树是一种常用的机器学习算法,用于分类和回归任务。
决策树算法可以看作是一种基于树结构的分类方法,它将数据集拆分成若干个子集,每个子集对应一个属性测试条件,通过不断递归地划分数据集,最终形成一棵决策树。
经典的决策树算法包括ID3和C5,本文将对这两种算法进行介绍。
ID3(Iterative Dichotomiser 3)是由Ross Quinlan提出的,它是最早的决策树算法之一。
ID3算法采用了信息增益作为属性选择度量,通过计算每个属性的信息增益,选择信息增益最大的属性进行分裂。
我们计算每个属性的信息增益。
信息增益被定义为父节点与子节点之间的信息差异,计算公式为:Gain(S,A)=H(S)-sum(P(a) * H(S_a))其中,H(S)表示节点S的熵,P(a)表示属性A的取值a在节点S中出现的概率,H(S_a)表示子节点S_a的熵。
选择信息增益最大的属性作为当前节点的分裂属性。
根据当前节点的分裂属性将数据集划分成若干个子集,对每个子集递归地执行步骤1和步骤2,直到满足停止条件(例如子集中所有样本都属于同一类别,或每个属性都已使用过)。
C5算法是ID3算法的改进版,它使用了增益率作为属性选择度量,以解决ID3算法中偏好于选择取值较多的属性的问题。
增益率定义为信息增益与分裂信息的比值,分裂信息被定义为:split_info(S,A)=-sum(P(a) * log2(P(a)))其中,P(a)表示属性A 的取值a在节点S中出现的概率。
C5算法的步骤与ID3算法类似,但在选择分裂属性时优先考虑增益率较高的属性。
C5算法还引入了剪枝技术,通过设置一个置信度阈值来避免过拟合,从而生成更加健壮的决策树。
ID3算法和C5算法都是经典的决策树算法,它们在处理分类问题时具有较高的准确率和可解释性。
然而,这两种算法也存在一些局限性,例如对于连续属性和处理缺失值的处理能力有限。
后续的许多研究者对决策树算法进行了改进和优化,如CART、CHD、BOOSTING等,这些算法在处理复杂问题、提高分类准确率和处理连续属性方面做出了更多的探索和实践。
用于分类的决策树(DecisionTree)-ID3C4.5

⽤于分类的决策树(DecisionTree)-ID3C4.5决策树(Decision Tree)是⼀种基本的分类与回归⽅法(ID3、C4.5和基于 Gini 的 CART 可⽤于分类,CART还可⽤于回归)。
决策树在分类过程中,表⽰的是基于特征对实例进⾏划分,将其归到不同的类别。
决策树的主要优点是模型可读、易于理解、分类速度快、建模与预测速度快。
本⽂主要介绍 Quinlan 在 1986 年提出的 ID3 算法与 1993 年提出的 C4.5 算法。
下⾯⾸先对决策树模型进⾏简单介绍。
决策树模型决策树是由树节点与边组成的,其节点有两种类型,内部节点和叶节点,内部节点表⽰⼀个特征或者属性,叶节点代表类别,如下如所⽰:图中可见根节点开始到叶节点的每条路径构建⼀条规则,内部节点的特征对应着规则的条件。
整棵树满⾜⼀个重要性质:每⼀个训练数据实例都被⼀条唯⼀的路径覆盖。
决策树的学习算法是做⼀个递归选择最优特征的过程,⽤最优特征对训练数据集进⾏分割,对分割后的两个⼦数据集,选择各⾃⼦数据集的最优特征继续进⾏分割,如果某个⼦数据集已经能够正确分类,则将该节点改为叶节点。
否则⼀直递归寻找最优特征知道没有合适特征为⽌。
决策树可能对训练数据有很好的分类能⼒,对测试数据却未必,这时可能是由于过度拟合训练数据,⽽降低了其泛化性,可以通过剪枝操作合并过分细分的叶⼦节点,将数据归并到⽗节点来增加其泛化性。
所以可以看到决策树⽣成过程对应着局部最优的特征选择,⽽剪枝对应着对模型进⾏全局调优。
对决策树模型有了初步认识之后,接下来将介绍决策树的建模与剪枝过程,这⾥重点介绍 ID3 与 C4.5 ,这两种形式的决策树学习均包括三个步骤:1)特征选择;2)决策树的⽣成;3)减枝。
接下来的段落围绕这三部分展开。
特征选择特征选择在于选取具有分类能⼒的特征,来提⾼决策树的学习效率,通常选择特征的标准为信息增益(ID3)与信息增益⽐(C4.5)。
决策树生成算法深度分析

决策树生成算法深度分析导言决策树是一种常见的机器学习算法,用于解决分类和回归问题。
决策树生成算法是指根据给定的训练数据集生成决策树的过程。
本文将深入分析决策树生成算法,包括ID3、C4.5和CART算法,并讨论它们的优势和劣势。
1. ID3算法ID3算法(Iterative Dichotomiser 3)是由Ross Quinlan在1986年提出的。
它通过计算数据集的熵和信息增益来选择最佳的划分属性。
熵用于度量数据集的混乱程度,信息增益则是指在特定属性上划分数据集之后的熵的变化。
ID3算法的主要步骤如下:(1)计算数据集的熵;(2)选择最佳的划分属性;(3)根据划分属性的取值将数据集划分为子集;(4)对每个子集递归调用ID3算法,生成子树。
ID3算法的优点是简单易理解,但它存在着无法处理连续属性和缺失值的问题。
同时,它倾向于选择取值较多的属性作为划分属性,可能导致过拟合的情况。
2. C4.5算法C4.5算法是ID3算法的改进版本,由Ross Quinlan在1993年提出。
C4.5算法在ID3算法的基础上引入了信息增益比的概念,并解决了ID3算法的一些缺点。
C4.5算法的主要步骤如下:(1)计算数据集的熵;(2)计算每个属性的信息增益比;(3)选择信息增益比最高的属性作为划分属性;(4)根据划分属性的取值将数据集划分为子集;(5)对每个子集递归调用C4.5算法,生成子树。
C4.5算法相比于ID3算法,能够处理连续属性和缺失值,并且通过引入信息增益比来解决过分选择取值多的属性的问题。
尽管C4.5算法在处理大数据集时效率较低,但它是决策树生成算法的重要改进之一。
3. CART算法CART算法(Classification And Regression Tree)是由Breiman等人在1984年提出的,它可以用于分类和回归问题。
CART算法的主要特点是生成二叉树,并使用基尼指数来选择最佳的划分属性。
决策树2-构造决策树的算法ID3、C4.5

决策树2-构造决策树的算法ID3、C4.51.决策树的本质if-then规则:决策树可以看做⼀个if-then规则的集合。
我们从决策树的根结点到每⼀个叶结点的路径构建⼀条规则。
并且我们将要预测的实例都可以被⼀条路径或者⼀条规则所覆盖,且只被⼀条路径或者⼀条规则所覆盖(互斥完备)。
2.构造决策树算法决策树学习的关键其实就是选择最优划分属性,希望划分后,分⽀结点的“纯度”越来越⾼。
那么“纯度”的度量⽅法不同,也就导致了学习算法的不同,这⾥我们讲解最常见的俩种算法,ID3算法与C4.5算法。
2.1ID3算法2.1.1算法思想我们既然希望划分之后结点的“纯度”越来越⾼,那么如何度量纯度呢?“信息熵”是度量样本集合不确定度(纯度)的最常⽤的指标。
在我们的ID3算法中,我们采取信息增益这个量来作为纯度的度量。
我们选取使得信息增益最⼤的特征进⾏分裂!那么信息增益⼜是什么概念呢?我们前⾯说了,信息熵是代表随机变量的复杂度(不确定度),条件熵代表在某⼀个条件下,随机变量的复杂度(不确定度)。
⽽我们这⾥说的的信息增益恰好是:信息熵-条件熵。
我们⽤下⾯这个公式计算⼀个系统的熵:在这个公式中,c 代表类别或属性的总数,p_i 代表属于第 i 类的样本所占的⽐例。
举个例⼦来说,我们有两个类别:红⾊(R)和蓝⾊(B)。
第⼀个袋⼦⾥有 25 块红⾊巧克⼒。
巧克⼒总数是 50。
因此,p_i=25/50。
蓝⾊类别也是这样处理。
把这些值代⼊熵⽅程,我们得到以下结果:信息增益的定义为:S 代表整个样本集,A 代表我们想要分割的属性。
|S| 代表样本数量,|Sv| 表⽰当前属性 A 值的样本数量。
信息增益表⽰得知属性 a 的信息⽽使得样本集合不确定度减少的程度那么我们现在也很好理解了,在决策树算法中,我们的关键就是每次选择⼀个特征,特征有多个,那么到底按照什么标准来选择哪⼀个特征。
对于ID3算法来说,这个问题就可以⽤信息增益来度量。
如果选择⼀个特征后,信息增益最⼤(信息不确定性减少的程度最⼤),那么我们就选取这个特征。
基于决策树的ID3算法与C4.5算法

S a n n将熵 定义 为 : hn o
[ 稿 日期 ]2 1 — 0 一O 收 O0 9 3
[ 者 简 介]高 阳( 9 2 , , 作 1 8 一) 男 山东 莱 芜人 , 北 工 业 大 学 硕 士 研 究 生 , 究 方 向 为数 据挖 掘 、 湖 研 电力 市 场 、 工 智 能 人
Ga n E A ) i ( , 一
e to y E n r p ( )一 n w— nto y E , ) e e rp ( A
1 I D3算 法简 介 2 C. 4 5算 法 简 介
I 3代表 归 纳 决 策 树 版 本 3 是 一 种 由数 据 构 D , 造决 策树 的递 归过 程 , J R Quna 由 . . il n在 1 8 9 6年 提
第 2 第 2期 6卷
高 阳 等 基 于 决 策 树 的 I 3算 法 与 C . D 4 5算 法
个实例 空 间进行 划 分. 构造 决策树 中 , 在 选择 一个属
性划 分数 据 , 得 子节 点 上 数 据 的类 值 大 部 分 都相 使
同. 如果 一个节 点上 数据 的类值 均匀 分 布 , 称该节 则
点熵 最大 , 反之则 最小 . ]
或者 增益 率 , 即选 择信 息 增 益 率 最 大 的 属 性作 为分 类属 性. 信息增 益率 等 于信 息 增 益对 分 割 信息 量 的
第 2 6卷 第 2期
VOI 6 NO. .2 2
湖 北 工 业 大 学 学
报
21 0 1年 O 月 4
Apr 011 .2
J u n lo b i ie st fT c n lg o r a fHu e Un v r i o e h oo y y
决策树(DecisionTree)原理简述及相关算法(ID3,C4.5)

决策树(DecisionTree)原理简述及相关算法(ID3,C4.5)转载⾃: https:///jerry81333/article/details/53125197Decision Tree 决策树:决策树是属于机器学习监督学习分类算法中⽐较简单的⼀种,决策树是⼀个预测模型;他代表的是对象属性与对象值之间的⼀种映射关系。
树中每个节点表⽰某个对象,⽽每个分叉路径则代表的某个可能的属性值,⽽每个叶结点则对应从根节点到该叶节点所经历的路径所表⽰的对象的值。
决策树仅有单⼀输出,若欲有复数输出,可以建⽴独⽴的决策树以处理不同输出。
下⾯来看个范例,就能很快理解了。
范例:假设,我们有以下数据,表⽰当天是否回去玩⾼尔夫:⽤决策树建⽴起来后,能得到这样的模型:⾄此可以看出,说⽩了,决策树就是If()语句的层层嵌套,知道最后能总结出点什么。
(原谅我实在不会描述点什么,不过看了这图应该对决策树有个⼤致的了解了吧。
)决策树中的元素:决策树中的元素基本和树中的差不多。
最上⾯的⼀个称为根节点,如上图的Outlook,⽤数据中的属性作为根节点或是节点,如Humidity,Windy等。
分⽀使⽤的是节点属性中的离散型数据,如果数据是连续型的,也需要转化成离散型数据才能在决策树中展⽰,如上图将Outlook属性作为根节点,sunny,overcast,rain作为该节点的三个分⽀。
信息熵 Entropy:现在,问题来了,在算法中如何确定使⽤数据的哪个属性作为根节点或是节点。
当然不能随便选,我们追求的⼀直都是最优解,即使是局部最优。
因此我们需要引⼊信息熵这个概念。
1948年,⾹农提出了“信息熵”概念。
⼀条信息的信息量⼤⼩和它的不确定性有直接的关系。
我们对⼀样东西越是⼀⽆所知,想要了解它就需要越多的信息。
举个栗⼦,如果我随机⼀个1-8之间的数字,给你猜,只回答你是或否。
那最好的猜测⽅式应该是,“是不是在1-4之间?”,如果得到否,我们就知道在5-8之间,如果得到是,我们继续猜“是否在1-2之间?”。
决策树分类算法——ID3算法及其改进算法C4.5讨论

K e wor : a sfc fo De iin e ;n o m ai n te r ;D3; . y ds Cls i a n; c so t eI f r to h o I i i r y C45
决 策 树 的定义 在 决策 树 方法 中,有 两个 基 本 的步 骤 :构建 树 和将 树 应 用于 数 据库 。大 多数研 究 都集 中 在如 何 有效 地构 建 树 ,而 应用 过 程是 很 简单 的。 定 义 1 出 了决策 树分 类 方法 的定义 。 给
2缺点。 .
它 属于 哪 类气 候 呢 ?要解 决 这个 问题 ,需 要用 某 个 原则 来判 定 ,这 个 原则 来 自于 大量 的实 际 例 子 ,从例 子 中 总结 出原则 ,有 了 原则 就可 以判 定任 何 一天 的 天气 属 于哪 类气 候 了 。
列 性质 的树 : 每 个 内部 结点 都被 标 记一 个属 性 ; 每 条弧 都 被标 记 一个 谓词 ,这个 谓 词可 应用 于 相应 父 结 点 的 属性; 每 个 叶结 点都 被标 记 一个 类 。 利 用决 策 树求 解分 类 问题 包括 两个 步 骤 : 决 策树 归 纳 利 用 训练 数据 集 构建 一 棵 决策树 ; 对 每个 元 素 t D,应 用 决策 树确 定 元素 的类 别 。 二 、基 于 互信 息 的 I 3 法 D 算 ( )I 3 法 的基本 思 想 - D 算 在 实体 世 界 中 ,每 个 实体 用 多个 特 征来 描述 。每个 特 征 限制 在 一个 离散 集 中取 互 斥 的值 。例 如 ,设 实体 是 某天 早 晨 的气 候 , 分类 任 务是 得 到关 于气 候 的类 型有 如 下特 征和 取 值 : o t o k {u n , v r a t r i ) u l o = s n y o e c s , a n
数据挖掘决策树算法ID3和C4.5精编版

wind
high
normal false
no
yes
yes
no
yes
no
no
no
true
yes no
gain(humidity)=0.971 bit gain(wind)=0.493 bit
因此选择湿度属性作为在这一个节点的分裂属性,在随之产生的子节点 上并不需要进一步分裂,因为叶子节点都是全纯子节点,所以这个分 支就结束了。
由此可见,采用度量信息增益的方法会倾向于选择拥有较多可能 属性值的属性。为了弥补这一缺陷,一个称之为增益率(gain ratio)
的度量修正被广范的采用。
• 上例所有的计数值均为1,因此分裂信后的信息值是: info([1,…,1])=-1/14 x log (1/14 )x 14=logl4(3.807位) 分支越多,该值越大。 具有较高分支的属性,该固有的信息值较高。 增益率,由信息增益除以该固有信息值得到。 例:得到标志码的增益率为 0.940 / 3.807 = 0.247
outlook
sunny
rainy overcast
humidity
yes
high
normal
wind
false
true
no
yes
yes
no
天气数据的决策树
ID3算法的不足及改进
当一些属性拥有的可能值得数量很大,从而使分支的路径增加,产生 出很多子节点时,计算信息增益就会出现一个问题。用一个极端的例 子来说明:当数据集的某个属性对于每一个实例存在一个不同属性值 时,比如,一个标志码属性。
• if humidity= normal then play=yes 第二条规则错分了一个实例样本
决策树算法——精选推荐

决策树算法1. 决策树ID3算法的信息论基础ID3算法是决策树的⼀种,它是基于奥卡姆剃⼑原理的,即⽤尽量⽤较少的东西做更多的事。
ID3算法,即Iterative Dichotomiser 3,迭代⼆叉树3代,是Ross Quinlan发明的⼀种决策树算法,这个算法的基础就是上⾯提到的奥卡姆剃⼑原理,越是⼩型的决策树越优于⼤的决策树,尽管如此,也不总是⽣成最⼩的树型结构,⽽是⼀个启发式算法。
在信息论中,期望信息越⼩,那么信息增益就越⼤,从⽽纯度就越⾼。
ID3算法的核⼼思想就是以信息增益来度量属性的选择,选择分裂后信息增益最⼤的属性进⾏分裂。
该算法采⽤⾃顶向下的贪婪搜索遍历可能的决策空间。
3. 信息熵与信息增益在信息增益中,重要性的衡量标准就是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。
在认识信息增益之前,先来看看信息熵的定义熵这个概念最早起源于物理学,在物理学中是⽤来度量⼀个热⼒学系统的⽆序程度,⽽在信息学⾥⾯,熵是对不确定性的度量。
在1948年,⾹农引⼊了信息熵,将其定义为离散随机事件出现的概率,⼀个系统越是有序,信息熵就越低,反之⼀个系统越是混乱,它的信息熵就越⾼。
所以信息熵可以被认为是系统有序化程度的⼀个度量。
假如⼀个随机变量的取值为,每⼀种取到的概率分别是,那么的熵定义为意思是⼀个变量的变化情况可能越多,那么它携带的信息量就越⼤。
对于分类系统来说,类别是变量,它的取值是,⽽每⼀个类别出现的概率分别是⽽这⾥的就是类别的总数,此时分类系统的熵就可以表⽰为以上就是信息熵的定义,接下来介绍信息增益。
信息增益是针对⼀个⼀个特征⽽⾔的,就是看⼀个特征,系统有它和没有它时的信息量各是多少,两者的差值就是这个特征给系统带来的信息量,即信息增益。
接下来以天⽓预报的例⼦来说明。
下⾯是描述天⽓数据表,学习⽬标是play或者not play。
可以看出,⼀共14个样例,包括9个正例和5个负例。
那么当前信息的熵计算如下在决策树分类问题中,信息增益就是决策树在进⾏属性选择划分前和划分后信息的差值。
决策树ID3与C4.5算法原理

决策树ID3与C4.5算法原理1. 决策树决策树(decision tree)是⼀种基本的分类与回归⽅法(本⽂主要是描述分类⽅法),是基于树结构进⾏决策的,可以将其认为是if-then规则的集合。
⼀般的,⼀棵决策树包含⼀个根节点、若⼲内部节点和若⼲叶节点。
其中根节点包含所有样本点,内部节点作为划分节点(属性测试),叶节点对应于决策结果。
⽤决策树进⾏分类,是从根节点开始,对实例的某⼀特征进⾏测试,根据测试结果,将实例分配到其⼦节点,若该⼦节点仍为划分节点,则继续进⾏判断与分配,直⾄将实例分到叶节点的类中。
若对以上描述不太明⽩,可以结合以下图进⾏理解。
根据以上决策树,现在给你⼀个实例:{⾊泽:青绿,根蒂:稍蜷,敲声:清脆,纹理:清晰,脐部:稍凹,触感:光滑},来判断该⽠是否是好⽠。
其过程是:脐部(稍凹)-->根蒂(稍蜷)-->⾊泽(青绿)-->好⽠。
以上是由决策树来进⾏分类的过程。
⽽决策树的学习(构建)通常是⼀个递归地选择最优特征的过程。
那么构建决策树时如何选择特征作为划分点(即选择哪个特征作为根节点或者选择哪个特征作为⾮叶⼦节点)?当训练数据量⼤、特征数量较多时构建的决策树可能很庞⼤,这样的决策树⽤来分类是否好? 由这些问题我们可以知道,构建决策树的三个要点: (1)特征选择 (2)决策树的⽣成 (3)决策树修剪2. ID3算法 基于ID3算法的决策树构建,其选择特征的准则是信息增益。
信息增益(information gain)表⽰得知特征 XX 的信息⽽使得类 YY 的信息的不确定性减少的程度。
也就是说,信息增益越⼤,通过特征 XX ,就越能够准确地将样本进⾏分类;信息增益越⼩,越⽆法准确进⾏分类。
在介绍信息增益之前,我们需要先对熵进⾏⼀下讲解。
2.1 熵(Entropy) 熵是度量样本集合纯度最常⽤的⼀种指标,它是信息的期望值。
我们⾸先了解⼀下什么是信息。
由《机器学习实战》中定义:如果待分类的事务可能划分在多个分类之中,则符号(特征) kk 的信息定义为:l(k)=−log2p(k)l(k)=−log2p(k)其中 p(k)p(k) 为选择该分类的概率。
【机器学习速成宝典】模型篇06决策树【ID3、C4.5、CART】(Python版)

【机器学习速成宝典】模型篇06决策树【ID3、C4.5、CART】(Python版)⽬录 引例 现有训练集如下,请训练⼀个决策树模型,对未来的西⽠的优劣做预测。
先不谈建⽴决策树模型的算法,我们先看⼀下基于“信息增益”(后⾯讲)⽣成的决策树的样⼦ ⼀棵决策树包含⼀个根节点、若⼲个内部节点、若⼲个叶节点。
叶节点对应于决策结果,其他节点对应于⼀个属性测试。
每个节点包含的样本集合根据属性测试的结果被划分到⼦节点中。
根节点(纹理)包含样本全集,根节点下的节点(根蒂)包含所有纹理=清晰的样本。
从根节点到每个叶节点的路径对应⼀个判定测试序列。
决策树的学习就是要产⽣⼀棵对新样本预测正确率⾼的决策树。
李航《统计学习⽅法》中的介绍 决策树(decision tree)是⼀种基本的分类与回归⽅法。
决策树模型呈树形结构,在分类问题中,表⽰基于特征对实例进⾏分类的过程。
它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。
其主要优点是模型具有可读性,分类速度快。
学习时,利⽤训练数据,根据损失函数最⼩化的原则建⽴决策树模型。
预测时,对新的数据,利⽤决策树模型进⾏分类。
决策树学习通常包括3个步骤:特征选择、决策树的⽣成和决策树的修剪。
这些决策树学习的思想主要来源于由Quinlan在1986年提出的ID3算法和1993年提出的C4.5算法,以及由Breiman等⼈在1984年提出的CART算法。
决策树学习的关键在于:在每个节点上如何选择最优划分属性。
在引例中,在根节点上,优先选择了“纹理”作为划分属性,这种选择是有依据的。
⼀般⽽⾔,随着划分过程不断进⾏,我们希望决策树的分⽀节点所包含的样本尽可能属于同⼀类别,即节点的“纯度”越来越⾼。
因此我们要找⼀个指标,去衡量划分数据集后“纯度提升的幅度”,然后选择能让“纯度提升的幅度”最⼤的特征去划分数据集。
常⽤的衡量“纯度提升的幅度”的指标有:信息增益、信息增益率、基尼指数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2007 年第 5 期
这时的不确定程度比概率均为 0. 5 小 , 则对应的期望信 0. 2 0. 8 息 : I = - ( 0. 2 ・ log2 + 0. 8 ・ log2 ) = 0. 72 决策树的生成过程也就是不确定性程度不断降低的 过程 。 ( 2 ) 计算属性 A, 每个取值的信息期望 I ( A = aj ) , j = 1, 2, …, m 设 : A 为数据集的某一属性 , A 的取值为 : a1 , a2 , …,
信息增益 Ga in (A ) 越大 , 则属性 A 对于分类提供的信 息量越大 , 则选择属性 A 之后对于分类的不确定程度越 小 。因此将计算出的各个属性的信息增益对比 , 选择信息 增益最大的属性作为根节点 。 S tep2. 由根节点属性的不同取值建立分支 ; S tep3. 采用递归 ( Recursively) 的方法 , 对各分支的子 集仍然选择信息增益最大的属性作为子节点 …… 直到所有的子集包含同一类别的数据为止 。 由以上步骤就能构造一棵决策树 , 可以用它来对新的 样本进行分类 。 [2] 2. 2 C4. 5 算法 C4. 5 算法是构造决策树分类规则的一种算法 , 它是 I D 3 算法的扩展 。 I D 3 算法只能处理离散型的描述性属 性 ,而 C4. 5 算法还能够处理描述属性取值为连续型的情 况 。选取节点的标准是最大信息增益率 ,具体的算法步骤 如下 : Step1. 对数据源进行数据预处理 , 将连续型的属性变 量进行离散化处理形成决策树的训练集 (如果没有连续取 值的属性则忽略 ) ; ( 1 ) 根据原始数据 , 找到该连续型属性的最小取值 a0 、 最大取值 an + 1 ; ( 2 ) 在区间 [ a , b ]内插入 n 个数值等分为 n + 1 个小 区间 ; ( 3 ) 分 别 以 ai , i = 1, 2, …, n 为 分 段 点 , 将 区 间 a0 , an + 1 划分为两个子区间 :
此时 , 训练数据集分类的信息期望 :
I = - i∑ pi ・ log2 3 =1
pi
k
( 1)
I表示把训练数据集 D, 划分为 k 类的不确定性程度 。
设训练数据集分为两类 : D1 , D2 , 若 :训练数据集属于这两类的概率均为 0. 5, 这时的不确 定程度最大 , 则对应的期望信息 : l = - 2 × 0. 5・log2 = 1 若 :训练数据集属于这两类的概率均分别为 0. 2、 0. 8,
于第 i类 ( D i ) 的条件概率 , 记为 pij : pij =
dij dj ,
k
则 I ( A = aj ) = - i∑ pij log2 =1
m
p属性 A 信息熵 En tropy ( A ) En tropy ( A ) = j∑ pj ・ I ( A = aj ) =1 ( 3) dj d
第 17 卷第 5 期 四川文理学院学报 (自然科学 ) Vol . 17 No. 5 S ichuan Un iversity of Arts and Sc ience Journa l( Na tura l Sc ience Ed ition )
2007 年 9 月 Sep. 2007
3
决策树的经典算法 : I D 3 与 C4. 5
0. 5
[收稿日期 ]2007 —06 —14 [作者简介 ]黄 文 ( 1981 —) ,女 ,四川大竹人 ,助教 , 2006 级硕士研究生 ,主要从事金融数量分析及智能金融研究 。
对函数以 2 为底 ,其原因是信息用二进制编码 。
16
黄 文
1, 2
:决策树的经典算法 : ID 3 与 C4. 5
3 3
标准就能够克服这一问题 。 C4. 5 算法还针对属性取值为 连续数据进行了处理 ,弥补了 I D 3 算法只能处理离散的属 性数据这一缺陷 。
2 I D 3 算法与 C4. 5 算法的描述
2. 1 I D 3 算法 1986 年 Quinlan 提出的 I D 3 算法是基于决策树学习
am , dj : A = aj的观测数 , dij :当 A = aj 时 , 对应的属于子集 D j的观测数 , 实例属
[ a0 , aj ], [ ( ai + 1 , an + 1 ) ]对应该连续型的属性变量的 两类取值 , 有 n 种划分方式 ; Step2. 计算每个属性的信息增益和信息增益率 ; ( 1 ) 计算属性 A 的信息增益 Ga in ( A ) 信息增益 Ga in ( A ) 的计算和 I D 3 算法中的完全一致 ; ( 2 ) 计算属性 A 的信息增益率 Ga in - R atio ( A ) Ga in - R a tio (A ) = Ga in ( A ) I (A ) ( 5)
中最重要的一种算法 , 最具代表性 , 在国际上的影响也最 大 。有大量的学者围绕该算法作了广泛的研究 ,并提出了 多种改进算法 。下面对 I D 3 算法进行详细的叙述 。 决策树的生成过程也就是一个树的节点的选择过程 :
Step1. 计算所有属性的信息增益 , 选择信息增益最大
的属性作为根节点 ;
黄 文
1, 2
( 1. 西南石油大学 理学院 ,四川 成都 610500; 2. 西南财经大学 统计学院 ,四川 成都 610074 )
【 摘 要】 决策树各类算法 ,各有特点 ,其中 J. R. Quinlan提出的 I D 3 算法最具代表性 ,在国际上的影响 也最大 , C4. 5 算法就是在 I D 3 算法基础上进行改进得到的 。通过对两种算法详细描述 , 阐明了决策树算 法步骤及其主要思想 。 【 关键词 】 I D 3; C4. 5; 信息增益 ; 信息增益率 ; 剪枝
其中 : dj 为 A = aj 的观测数 , pj =
( 4 ) 计算属性 A 的信息增益 Ga in ( A )
属性 A 对于分类提供的信息量 , 叫做属性 A 的信息增 益 , 记为 Gain ( A ) , 则 :
Ga in ( A ) = En tropy ( A ) - I ( 4)
对于取值连续的属性而言 , 分别计算以 ai ( i = 1, 2, …, n ) 为分割点 , 对应分类的信息增益率 , 选择最大信息 增益率对应的 ai , 作为该属性分类的分割点 。 选择信息增益率最大的属性 , 作为当前的属性节点 , 得到决策树的根节点 。 Step3. 根节点属性每一个可能的取值对应一个子集 , 对样本子集递归地执行以上 Step2 过程 , 直到划分的每个 子集中的观测数据在分类属性上取值都相同 , 生成决策 树。 Step4. 根据构造的决策树提取分类规则 , 对新的数据 集进行分类 。 类似算法的主要思想都是 , 逐步找出能够为各个层次 的分类提供最大信息量的变量 , 由此可以确定决策树从根 到枝 , 再从枝到叶的结构 。决策树生成的过程也就是对训 练数据集进行分类的过程 。
17
2007 年第 5 期
黄 文
1, 2
:决策树的经典算法 : ID 3 与 C4. 5
判率 。采用训练数据集作为测试集 ,取置信区间的上限作 为对误判率的估计 。给定一个显著性水平度 α ( C4. 5 算 法中默认 α = 0. 25 ) , 显然错误的总数服从二项分布 , 则 有:
P
Step5. 在剪枝的过程中修正各个属性的隶属函数 ; Step6. 从决策树中提取分类规则 。
|p - p |
p ( 1 - p ) /N
e e
e
> u1 - α =α
( 6)
其中 : N 为被修剪的子树下的实例总数 , E 为修剪后出现 的错误实例数 ,
p= E e 是实际观测到的误判率 , p 为估计的误判率 。 N
3 决策树的简化
从前文对 I D 3 和 C4. 5 算法的描述中可以看到这种算 法使用的分类准则是以信息论的概念为基础的 ,而信息论 也正在不断的发展完善 。但许多分类规则都存在一个普 遍的问题 — 过度拟合 ,由训练集生成的决策树对训练集分 类的结果很好 ,但用它来对未参与决策树生成过程的新的 数据集进行分类得到的结果 ,可能并不理想 。因此有必要 对生成的初始决策树进行简化修正 , 也称为剪枝 , 来得到 更一般的分类规则 ,剪枝后得到的新的决策树可能会使得 它对训练集分类的误判率增大 ,但同时却能减少对新的数 据集分类的误判率 。 Quinlan提出 的 剪 枝 方 法 是 一 种 悲 观 错 误 修 剪 法 ( Pessim istic Error Pruning) ,因为用生成决策树的训练数据 集来检验误判率时 ,实际上对错误的估计过于乐观了 , 因 为决策树是由训练数据集生成的 , 所以 , 在多数情况下决 策树与训练数据集是符合的 。但把决策树用于对训练数 据以外的数据进行分类时 ,很明显这时的错误率将大大增 加 。基于以上原因 , Quinlan 借用二项分布对训练数据中 的误判率加以修正 , 以得到更为符合实际的错误率 。显 然 ,与修正前的错误率相比 ,修正后的错误率增大了不少 , 因此认为它对错误率的看法是“ 悲观 ” 的 。下面我们进一 步讨论决策树的剪枝 (简化 )过程 。 决策树的简化过程 : 对决策树上所有非叶节点 A 进行计算分析 。从树的 根节点开始 ,计算每个分枝节点被剪也即被叶替代后的误
( 1 )计算给定的训练数据集分类的信息期望 I
记 :训练数据集为 D, 分为 k 类 , 也即 k 个子集 : D1 ,
D2 , …, D k , d :数据集中观测的总数 , di : D i中的观测数 , 则一个实例属于第 i类的概率 : pi = d1 d ( i = 1, 2, …, k ) ,
[中图分类号 ]O24 [文献标识码 ]A [文章编号 ]1008 - 4886 ( 2007 ) 05 - 0016 - 03