数据挖掘决策树算法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算法⼗分简单,核⼼是根据“最⼤信息熵增益”原则选择划分当前数据集的最好特征,信息熵是信息论⾥⾯的概念,是信息的度量⽅式,不确定度越⼤或者说越混乱,熵就越⼤。
机器学习--决策树算法(ID3C4.5)
机器学习--决策树算法(ID3C4.5)在⽣活中,“树”这⼀模型有很⼴泛的应⽤,事实证明,它在机器学习分类和回归领域也有着深刻⽽⼴泛的影响。
在决策分析中,决策树可以明确直观的展现出决策结果和决策过程。
如名所⽰,它使⽤树状决策模型。
它不仅仅是在数据挖掘中⽤户获取特定⽬标解的策略,同时也被⼴泛的应⽤于机器学习。
如何使⽤树来表⽰算法为此,我们考虑使⽤泰坦尼克号数据集的⽰例,以预测乘客是否会⽣存。
下⾯的模型使⽤数据集中的3个特征/属性/列,即性别,年龄和SIBSP(配偶或⼉童的数量)。
这是⼀棵体现了⼈性光辉的决策树。
树的形状是⼀棵上下颠倒的决策树,叶⼦节点在下,根节点在上。
在图像中,⿊⾊中的粗体⽂本表⽰条件/内部节点,基于树分成分⽀/边缘。
不再分裂的分⽀结束是决策/叶⼦,在这种情况下,乘客是否被死亡或幸存,分别表⽰为红⾊和绿⾊⽂本。
虽然,⼀个真实的数据集将有很多功能,这只是⼀个更⼤的树中的部分分⽀,但你不能忽略这种算法的简单性。
该特征重要性是明确的,可以轻易查看决策关系。
该⽅法更常见于来⾃数据的学习决策树,并且在树上被称为分类树,因为⽬标是将乘客分类为幸存或死亡,上⾯所展⽰的决策树就是分类树。
回归树以相同的⽅式表⽰,例如⽤于预测房⼦价格的连续价值。
通常,决策树算法被称为CART或分类和回归树。
那么,算法⽣成的背后发⽣了什么呢?如何⽣成⼀个决策树取决于选择什么特征和在何种情况下进⾏分裂,以及在什么时候停⽌。
因为⼀棵树通常是随意⽣长的,你需要修剪它,让它看起来漂亮(研究如何⽣成决策树)。
ID3算法ID3算法⽣成决策树ID3算法(Iterative Dichotomiser 3)是决策树⽣成算法的⼀种,基于奥卡姆剃⼑原理(简约原则) 1。
是Ross Quinlan发明的⼀种决策树算法,这个算法的基础就是上⾯提到的奥卡姆剃⼑原理,越是⼩型的决策树越优于⼤的决策树,尽管如此,也不总是⽣成最⼩的树型结构,⽽是⼀个启发式算法。
决策树的经典算法: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的方法,以信息论为基础,以信息熵和信息增益度为衡量标准,从而实现对数据的归纳和分类。
数据挖掘十大经典算法
数据挖掘十大经典算法一、 C4.5C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;2) 在树构造过程中进行剪枝;3) 能够完成对连续属性的离散化处理;4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。
其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
1、机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。
树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。
决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。
2、从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树。
3、决策树学习也是数据挖掘中一个普通的方法。
在这里,每个决策树都表述了一种树型结构,他由他的分支来对该类型的对象依靠属性进行分类。
每个决策树可以依靠对源数据库的分割进行数据测试。
这个过程可以递归式的对树进行修剪。
当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程就完成了。
另外,随机森林分类器将许多决策树结合起来以提升分类的正确率。
决策树是如何工作的?1、决策树一般都是自上而下的来生成的。
2、选择分割的方法有好几种,但是目的都是一致的:对目标类尝试进行最佳的分割。
3、从根到叶子节点都有一条路径,这条路径就是一条―规则4、决策树可以是二叉的,也可以是多叉的。
对每个节点的衡量:1) 通过该节点的记录数2) 如果是叶子节点的话,分类的路径3) 对叶子节点正确分类的比例。
有些规则的效果可以比其他的一些规则要好。
由于ID3算法在实际应用中存在一些问题,于是Quilan提出了C4.5算法,严格上说C4.5只能是ID3的一个改进算法。
决策树的训练算法
决策树的训练算法
决策树的训练算法主要有以下几种:
1. ID3算法:ID3(Iterative Dichotomiser 3)是一种用于决策树学习的经典算法。
它基于信息熵的概念,通过计算每个特征的信息增益来选择最优的划分特征。
2. C4.5算法:C4.5算法是ID3算法的改进版,它在选择划分特征时使用信息增益比来解决ID3算法中对取值较多的特征有偏好的问题。
此外,C4.5算法还支持处理连续特征。
3. CART算法:CART(Classification and Regression Tree)算法是一种用于生成二叉决策树的算法。
它根据基尼系数来选择最优的划分特征,并使用回归树或分类树来处理连续特征。
4. CHAID算法:CHAID(Chi-square Automatic Interaction Detector)算法是一种适用于分类问题的决策树算法。
它使用卡方检验来选择最优的划分特征,并根据卡方统计量的值来评估特征的重要性。
5. 梯度提升决策树(GBDT)算法:GBDT算法是一种集成学习算法,它将多颗决策树进行级联,每颗树的输出作为下一颗树的输入。
GBDT通过梯度下降的方式逐步优化模型的预测能力。
这些算法在决策树的构建过程中采用不同的策略和指标,适用于不同类型的数据和问题。
在实际应用中,可以根据数据特点和问题需
求选择合适的算法进行训练。
决策树C4.5算法总结
数据集准备
数据清洗
去除异常值、缺失值,对数据进行预处理,使其满足算法要 求。
数据分割
将数据集分为训练集和测试集,用于训练和评估决策树模型 。
特征选择与划分
特征重要性评估
计算每个特征对目标变量的影响程度,选择最重要的特征作为划分标准。
特征划分
根据特征的重要性和信息增益率,将数据集划分为不同的子集,形成决策树的 节点。
THANKS
感谢观看
案例二:医疗诊断分类
数据集
医疗诊断数据集包含了1452 条样本,每个样本有11个特 征,目标变量为是否患有某
种疾病。
算法应用
使用C4.5算法构建决策树模 型,对数据进行训练和测试 ,评估模型的准确率、召回
率和F1分数等指标。
结果分析
通过决策树模型,可以辅助 医生进行疾病诊断,提高诊 断的准确性和效率。
处理连续属性和缺失值的方法优化
• C4.5算法在处理连续属性和缺失值时采用了一些简单的策略,如将连续属性离散化或忽略缺失值。这些策略可 能导致决策树无法充分利用数据中的信息。因此,一些研究者提出了更复杂的方法来处理连续属性和缺失值, 如使用插值或回归方法来处理连续属性,以及使用特殊标记或填充值来处理缺失值。这些方法可以提高决策树 对连续属性和缺失值的处理能力,从而提高模型的分类准确率。
2
C4.5算法采用了信息增益率、增益率、多变量增 益率等更加复杂的启发式函数,提高了决策树的 构建精度和泛化能力。
3
C4.5算法还引入了剪枝策略,通过去除部分分支 来避免过拟合,提高了决策树的泛化性能。
决策树C4.5算法的应用场景
数据挖掘
C4.5算法广泛应用于数据挖掘 领域,用于分类、回归和聚类
决策树模型常用算法
决策树模型常用算法决策树是一种常用的机器学习算法,它可以处理分类和回归问题。
在决策树模型中,通过对输入数据进行一系列的判断和分割,最终得到一个决策路径,用于预测新的数据。
决策树模型的构建过程中,常用的算法包括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精编版
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 第二条规则错分了一个实例样本
决策树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
决策树(ID3,C4.5,CART)原理以及实现
决策树(ID3,C4.5,CART)原理以及实现决策树决策树是⼀种基本的分类和回归⽅法.决策树顾名思义,模型可以表⽰为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布.[图⽚上传失败...(image-2e6565-1543139272117)]决策树的中间节点可以看做是对⼀种特征的判断,也是符合上⼀次判断特征某种取值的数据集,根节点代表所有数据集;叶⼦节点看做是判断所属的类别.决策树学习通常包括3个步骤: 特征选择. 决策树⽣成和决策树剪枝.⽬前常⽤的决策树算法有ID3, C4.5 和CART.特征选择在数据集中的所有特征列表中,选择分类效果最好的特征,或者说让分类效果尽可能的"纯",通俗的说就是让划分的每个结果的尽可能属于同⼀个类别,都是⾃⼰⼈. 那么, 分类效果最好,或者说纯度,怎么定义? ⽤什么衡量特征的分类效果呢? 不同的决策树算法采⽤不同的衡量指标.⽐如说,ID3采⽤信息增益,C4.5采⽤信息增益⽐率,CART分类回归树当⽤于分类时,采⽤Gini指数,⽤于回归问题时采⽤均⽅差差[计算划分之前的均⽅差,划分之后的均⽅差,再做差运算]. ⽆论是哪种指标,本质上,都是⽐较⽤特征划分前后两种状态之间的差异变化,变化越明显越好,⽽各种指标是对这种差异变化的量化. 但是不同的指标会有不同的倾向性,这种倾向性从指标计算公式上可以发现,⽽倾向性⼜会引出不同的问题,进⽽产⽣不同的优化⽅法.另⼀⽅⾯,最佳的特征的选择,总是需要对所有特征进⾏⼀次遍历,分别计算每种特征的划分效果,⽐较求最优特征的最佳特征划分值.信息增益计算信息增益之前,需要先引出信息熵的概念.熵是信息论中的⼀个⾮常重要的概念,信息熵的计算,对于⼀个数据集D,其中N中类别的第k类样本所占⽐例为pk,则数据集D的信息熵:\(Ent(D)= -\sum_{k=1}^{N}p_k log_2 p_k\)从信息熵的计算公式可以知道,Ent(D)的取值范围在[0, \(log_2n\)], 最⼩,或者说节点最纯时[都是同⼀个类别],为0;最⼤,最混乱时[每种类别⽐例都相等],为\(log_2n\).知道了信息熵的计算公式,那么划分前,计算数据集的信息熵, 依据特征f的n种取值划分后的n个节点,分别计算信息熵,然后依据各个节点数据集的⽐率,加权平均,计算划分后的总的信息熵,前后两次做差,得到这次划分的信息增益,⽤来衡量特征f的划分效果如何.信息增益:信息增益表⽰得知特征f的信息⽽使得类Y的信息的不确定性较少的程度.\(Gain(D,f) = Ent(D) - \sum_{i=1}^{n} \frac{|D_i|}{|D|}Ent(D_i)\)信息增益越⼤,特征划分效果越好. 信息增益指标,趋向于选择取值数⽬多的特征.[个⼈观点:特征取值越多,划分到每个⼦节点的数据越少,⼀定程度上,纯度越⾼,混乱程度越低,熵取值越⼩,进⽽,信息增益越⼤.⽐如说,ID特征,因为ID是唯⼀的,所有划分到每个ID取值节点上也就⼀个数据点,纯度100%,熵为0.]信息增益⽐率\(GainRatio(D,f)=\frac{Gain(D,f)}{IV(f)}\)其中,\(IV(f) = -\sum_{v=1}^{V}\frac{|D_v|}{|D|}log_2\frac{|D_v|}{|D|}\)\(D_v\)表⽰特征f取值为v的数据⼦集.因为信息增益会倾向于选择特征取值多的特征,所以,我们对多取值特征进⾏惩罚,除以特征f的固有值[或者说特征f的信息熵,f的信息熵越⼤,相应f的取值情况越多,惩罚⼒度越⼤].Gini指数假设数据集D有K个类,样本点属于第k类的概率为pk,则概率分布的基尼指数定义为:\(Gini(D)=\sum_{k=1}^Kp_k(1-p_k) =1 - \sum_{k=1}^Kp_k^2\)知道了gini指数的计算公式,计算划分前的gini指数,划分后,计算各个节点的gini指数值,然后根据划分后⼦节点的数据⽐例进⾏加权求和,得到划分后的总gini指数,最后对两次结果做差,得到特征f的划分效果, 差值越⼤,分类效果越好.均⽅差MSE[和,不平均]和分类时相似,计算划分前节点的均⽅差,划分后计算⼦节点的均⽅差,依据数据⽐例加权平均,再计算两次结果差值,差值越⼤越好.MAE也可以⽤作特征选择指标,和MSE类似.决策树⽣成决策树本质上也是⼀棵树,所以符合数据结构中树的⼀般性构造过程,也就是递归.既然是递归构建过程,⾸先要明⽩的是递归终⽌条件,否则就会陷⼊死循环.那么决策树的终⽌条件是什么呢?决策树中符合终⽌条件时,停⽌继续划分,⽣成叶节点.如果是分类树:1. 如果节点数据全是同⼀类别,停⽌递归[没有必要了,都是⾃⼰⼈];2. 如果特征列表为空,停⽌递归[在分类问题中,⼀般情况下,每种划分特征只会⽤⼀次,⽤完就扔了---负⼼汉];3. 如果所有样本在所有特征上取值都相同,停⽌递归[特征没⽤,不具有区分度---所有特征上取值都相同,千篇⼀律]如果是回归树,回归树通常会设定⾃定义的参数,⽐如均⽅差变化最⼩值,每个节点容忍的最⼩样本数,相应的条件:1. 均⽅差变化太⼩[⼩于预定义的阈值];2. 划分后节点的样本量太少[⼩于预定义的阈值,⽐如只有2,3个,⼩猫两三只没有必要继续划分了];[终⽌条件]检测数据集中的每个⼦项是否属于同⼀分类,or 特征集为空:If so: return 类标签Else:寻找划分数据集的最好特征(--基于信息增益)划分数据集创建分⽀结点for 每个划分的⼦集调⽤⾃⼰,并增加返回结果到分⽀结点中return 分⽀结点上⾯伪代码中存在⼀个问题, 类标签怎么确定?如果叶⼦节点都属于同⼀类别,那么给定所属类别即可;如果叶⼦节点数据属于不同的类别,⼤家进⾏投票决定,服从多数⼈的利益[少数服从多数].树剪枝因为在决策树的构建过程中,可能会存在过拟合现象,或者说决策树深度太深,太过于复杂;因此,我们可以对决策树进⾏剪枝处理.剪枝⼜分为预剪枝和后剪枝.预剪枝是指在决策树⽣成过程中,对每个节点在划分前先进⾏估计,如果当前的划分不能带来决策树泛化性能的提升[泛化性能可以⽤错误率,或者说均⽅差衡量],则停⽌划分将当前节点标记为叶节点.后剪枝过程是⼀个不断尝试的过程:找到叶⼦节点,尝试合并[将叶⼦节点的双亲变成叶⼦节点],⽐较合并前后的变化效果.变化效果需要定量分析,这个数据量指标分类问题可以使⽤错误率,回归树可以使⽤均⽅差, ⽽指标的计算需要数据,因此我们需要⼀定的测试数据,然后使⽤测试数据在已经⽣成的决策树上进⾏不断测试,假如合并后⽐合并前效果好,分类问题上就是错误率降低了,回归问题上均⽅差减少了,我们就进⾏合并处理[或者说是剪枝处理].其他问题决策树使⽤范围,或者说对数据集的要求: 标称数据或数值型数据.本质上,决策树只适⽤于标称型数据[也就是离散数据],但如果是连续数据[在特征取值上连续],我们需要进⾏离散处理.不同类型的决策树处理问题不同,有的决策树需要对数据进⾏预先离散化处理;但有的决策树本⾝可以处理连续数据.决策树在⽣成过程中会遇到各种各样的问题.有数据集的问题,也有决策树本⾝的问题,⽽决策树本⾝也有⾃⼰的适⽤范围,不可能适⽤于所有问题[⼀招鲜吃遍天impossible].⽐如说:连续数据: 离散化处理;空缺数据: 如果在某个特征上数据存在空缺值,怎么处理? 我们可以先将取特征上⾮空的数据⼦集,当做⾮空数据处理,然后将特征取值为空记录按照⼦节点数据的⽐率划分到所有⼦节点上.etc.具体问题具体分析,依据不同的任务,数据集的不同特点选择适合的算法模型.代码实现欢迎fork,star.。
决策树分类算法——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算法原理
决策树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) 为选择该分类的概率。
数据挖掘十大算法及案例
数据挖掘十大算法及经典案例一、数据挖掘十大经典算法国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART。
不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。
(一)C4.5C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法。
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:1. 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;2. 在树构造过程中进行剪枝;3. 能够完成对连续属性的离散化处理;4. 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。
其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
(二)The k-means algorithm 即K-Means算法k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。
它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。
它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。
(三)Support vector machines支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。
它是一种監督式學習的方法,它广泛的应用于统计分类以及回归分析中。
支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们需要一种度量来表示节点的纯度,并需要这种 度量告诉我们根据一个变量的属性值将一个不纯 的节点上的数据划分到其子女后,纯度提高了多 少。最为广泛使用的度量是信息值(熵)。(以天 气数据为例)
根节点
叶子节点
决策节点
叶子节点
叶子节点
步骤:
1.决策树的生成:由训练样本数据集(根据历史
数据生成、有一定综合程度的用于数据分析处
理的数据集)生成
2.决策树的剪枝:采用新的样本数据集(测试数
据集或者训练数据修剪集)检验决策树生成过
程中产生的初步规则,将影响预测准确性的分
支剪除。
ID3决策树算法描述
c
·· m · yes
n no
yes
由此可见,采用度量信息增益的方法会倾向于选择拥有较多可能 属性值的属性。为了弥补这一缺陷,一个称之为增益率(gain ratio) 的度量修正被广范的采用。
•
上例所有的计数值均为1,因此分裂信后的信息值是: info([1,…,1])=-1/14 x log (1/14 )x 14=logl4(3.807位) 分支越多,该值越大。 具有较高分支的属性,该固有的信息值较高。 增益率,由信息增益除以该固有信息值得到。 例:得到标志码的增益率为 0.940 / 3.807 = 0.247
yes yes yes no no no no
yes yes yes yes yes yes no
分别计算它们的信息增益为: gain(temperature)=0.029 bit gain(humidity)=0.152 bit gain(wind)=0.048 bit
将这些属性的信息增益的值进行比较,信息增益最大的属性节点将作为 决策树的根节点。所以我们选择outlook属性作为根节点,它是唯一一 个获得了全纯子节点,这就为超越其他所有属性赢得了相当大的优势。 而湿度属性是第二个最佳选择,因为它产生了一个几乎是全纯且较大 的子节点。 根节点确定了,接着继续进行这种递归过程。 下面是outlook属性值为sunny时的节点进一步分支的可能性:
• 1.试探性地选择一个属性放置在根节点,并对该属性的每 个值产生一个分支。 • 2.分裂根节点上的数据集,并移到子女节点,产生一棵局 部树。 • 3.对该划分的信息增益进行计算。 • 4.对其他属性重复该过程。 • 5.每个用于划分的属性产生一棵局部树。 • 6.根据局部树的信息增益值,选择一棵增益最大的属性的 局部树。 • 7.对选定的局部树的每个子女节点重复以上1-6步。 • 8.这是一个递归过程。如果一个节点上的所有实例都具有 相同的类,则停止局部树的生长。
outlook sunny temperature hot no no mild yes no cool yes sunny sunny humidity high no no no normal yes yes false yes no no outlook outlook
wind
true yes no
outlook sunny humidity high no normal yes rainy overcast yes false yes wind true no
天气数据的决策树
ID3算法的不足及改进
当一些属性拥有的可能值得数量很大,从而使分支的路径增加,产生 出很多子节点时,计算信息增益就会出现一个问题。用一个极端的例 子来说明:当数据集的某个属性对于每一个实例存在一个不同属性值 时,比如,一个标志码属性。
多属性是连续的,不能够用一个确定的标准来对其进行划分。C4.5 使用下面的一系列处理过程来对连续的属性划分成离散的属性,进而
达到能够建立决策树的目的。
• C4.5对ID3进行了一系列改进。这些改进包括处理数值属性、残缺值、 后剪枝的方法。(将训练数据增益率来选择属性 • (2)可以处理连续数值型属性
在选择某节点上的分枝属性时,对于离散型描述属性,C4.5的处理方法与ID3相同,按 照该属性本身的取值个数进行计算;对于某个连续性描述属性Ac,假设在某个结点上
yes yes yes yes
因此树桩所获得的信息增益为: gain(outlook)=info([9,5])-info([2,3],[4,0],[3,2]) 在叶子节点上的yes和no类的实例数量 =0.940-0.693=0.247 bit 分别是[2,3]、[4,0]、[3,2],因此,这些 节点上的信息值分别是: info([2,3])=entropy(2/5,3/5)=0.971 bit info([4,0])=entropy(1,0)=0 bit info([3,2])=entropy(3/5,2/5)=0.971 bit
天气数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14
outlook sunny sunny overcast rainy rainy rainy overcast sunny sunny rainy sunny overcast overcast rainy temperature hot hot hot mild cool cool cool mild cool mild mild mild hot mild humidity high high high high normal normal normal high normal normal normal high normal high windy FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE play no no yes yes yes no yes no yes yes yes yes yes no
temperature、humidity、wind属性的树桩
temperature hot yes yes no no cool mild yes yes yes yes no no yes yes yes no high humidity normal false yes yes yes yes yes yes no no wind true yes yes yes no no no
再返回之前的天气数据的树桩:属性outlook将数据集分裂成3个子集,规模 分别为5,4,5,因此不考虑子集中所包含的类别,产生一个内在的信息值: info([5,4,5])=1.577 bit 得到outlook属性的增益率为:(0.940-0.693)/1.577=0.157 类似的可以计算出 其他属性树桩的增益率: temperature属性的增益率为:(0.940-0.911)/info(4,6,4)=0.019 humidity属性的增益率为:(0.940-0.788)/info(7,7)=0.152 wind属性的增益率为:(0.940-0.693)/1.577=0.049
• 我们希望从上面的实例中找出者若干条规 则,使得能够对这些实例的类做出判断 (理想情况下)(举例) • if outlook=sunny and =high then play =no • if humidity= normal then play=yes 第二条规则错分了一个实例样本
决策节点: 1.最上面的节点称为根节点,是整个决策树的开始。 2.每个节点子节点的个数与决策树在用的算法有关。 (二叉树、多叉树) 分支:判断过程,要么是新的决策节点,要么是叶子 树叶:树的结尾,每个叶子代表一个类别
选择属性作为根
产生分支
计算信息增益
选择max增益
是 数据进一步分裂? 否 结束 算法流程图
信息值(熵)、信息增益的概念
熵:
entropy(p1,p2,...,pn)=-p1logp1-p2logp2••••-pnlogpn 使用负号是因为分数p1,p2,...,pn的对数值是负数,而 熵是一个正数。熵是以位bit位单位的,公式里的 p1,p2,...,pn他们的和为1。
标志码 a b c d e f g h i j k l m n outlook sunny sunny overcast rainy rainy rainy overcast sunny sunny rainy sunny overcast overcast rainy temperature hot hot hot mild cool cool cool mild cool mild mild mild hot mild humidity high high high high normal normal normal high normal normal normal high normal high windy FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE play no no yes yes yes no yes no yes yes yes yes yes no
对标志码属性进行分裂而产生的树桩如下,这个属性值的类别所需的信 息量是: info([0,1])+info([0,1])+info([1,0])+......+info([1,0])+info([0,1])= 0 bit
标志码
标志码属性的信息增益就是在根节点上的信息量 a b 即:gain(标志码)=info([9,5])=0.940 bit它比在 其他任何属性上获得的信息增益值大,毫无疑问 no no 标志码将被选为分裂属性,但是在标志码属性 上的分支对预测未知实例的类别没有任何帮助, 也没能够描述任何有关决策的结构。
•
由此可以看出,在上述4个属性中outlook属性的结果依然排在首位,