大众iD3的离地间隙

从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树。

离地间隙150毫米。

id3决策树(id3决策树信息增益)id3决策树(id3决策树信息增益)


id3决策树(id3决策树信息增益)


id3最小离地间隙150毫米。大众ID.3由于新车诞生于纯电动平台,所以四门可以更加接近车辆的四角。车身尺寸方面,新车长度为4261mm,车宽1809mm,车高1552mm,轴距为2765mm,能有不错的乘坐空间。

id3的优缺点

ID3算法是因此,我们求得的信息增益率就是一个非常小的值了,这个时候就可以发现 ID 这个特征分类效果非常。也因此 C4.5 算法很好地解决了 ID3 算法对稀疏特征衡量的不足。一种比较简单的决策树字段选择方法,它的基础理论清晰,但也有一些缺点。ID3算法在选择根和各内部中的分支属性于是Quilan改进了ID3,提出了C4.5算法。C4.5算法现在已经成为最经典的决策树构造算法,排名数据挖掘十大经典算法之首,下一篇文章将重点讨论。时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在某些情况下,这类属性可能不会提供太多有价值的信息。

ID3算法不能处理具有连续值的属性,也不能处理具有缺失值的属性。ID3算法没有对决策树进行修剪的过程,噪声比较大。

机器学习故事汇-决策树算法

如果H(Y|X=x)为变数Y在变数X取特定值x条件下的熵,那么H(Y|X)就是H(Y|X=x)在X取遍所有可能的x后取平均的结果。

机器学习故事汇-决策树算法

给定训练集D和属性 ,令 表示D中在属性 上没有缺失值的样本子集,定 有V个取值 ,令 表示 中在属性 上取值为 的样本子集, 表示 中属于第k类 的样本子集,给每个样本 赋予一个权重 ,并定义:

【咱们的目标】系列算法讲解旨在用最简单易懂的故事情节帮助大家掌握晦涩无趣的机器学习,适合对数学很头疼的同学们,小板凳走起!

决策树模型是机器学习中最经典的算法之一啦,用途之广泛我就不多吹啦,其实很多机器学习算法都是以树模型为基础的,比如随机森林,Xgboost等一听起来就是很的算法(其实用起来也很)。

首先我们来看一下在上面的例子中我想根据人的年龄和性别(两个特征)对5个人(样本数据)进行决策,看看他们喜不喜欢玩电脑游戏。首先根据年龄(根)进行了一次分支决策,又对左根据性别进行了一次分支决策,这样所有的样本都落到了最终的叶子,可以把每一个叶子当成我们最终的决策结果(比如Y代表喜欢玩游戏,N代表不喜欢玩游戏)。这样我们就通过决策树完成了非常简单的分类任务!

再来看一下树的组成,主要结构有根(数据来了之后首先进行判断的特征),非叶子(中间的一系列过程),叶子(最终的结果),这些都是我们要建立的模块!

在决策中树中,我们刚才的喜欢玩电脑游戏的任务看起来很简单嘛,从上往下去走不就OK了吗!但是难点在于我们该如何构造这棵决策树(的选择以及切分),这个看起来就有些难了,因为当我们手里的数据特征比较多的时候就该犹豫了,到底拿谁当成是根呢?

这个就是我们最主要的问题啦,究竟该怎么选呢?不同的位置又有什么影响?怎么对特征进行切分呢?一些到这,我突然想起来一个段子,咱们来乐呵乐呵!

武林外传中这个段子够我笑一年的,其实咱们在推导机器学习算法的时候,也需要这么去想想,只有每一步都是有意义的我们才会选择去使用它。回归正题,我们选择的根其实意味着它的重要程度是的,相当于大当家了,因为它会对数据进行次切分,我们需要把最重要的用在最关键的位置,在决策树算法中,为了使得算法能够高效的进行,那么一开始就应当使用最有价值的特征。

不确定性什么时候呢?模棱两可的的时候(就是你犹豫不决的时候)这个时候熵是的,因为什么类别出现的可能性都有。那么我们该怎么选大当家呢?(根的特征)当然是希望经过大当家决策后,熵值能够下降(意味着类别更纯净了,不那么混乱了)。在这里我们提出了一个词叫做信息增益(就当是我提出的吧。。。),信息增益表示经过一次决策后整个分类后的数据的熵值下降的大小,我们希望下降越多越好,理想情况下最纯净的熵是等于零的。

一个栗子:准备一天一个哥们打球的时候,包括了4个特征(都是环境因素)以及他最终有木有去打球的数据。

个问题:大当家该怎么选?也就是我们的根用哪个特征呢?

一共有4个特征,看起来好像用谁都可以呀,这个时候就该比试比试了,看看谁的能力强(使得熵值能够下降的最多)

在历史数据中,首先我们可以算出来当前的熵值,计算公式同上等于0.940,大当家的竞选我们逐一来分析,先看outlook这个特征,上图给出了基于天气的划分之后的熵值,计算方式依旧同上,比如outlook=sunny时,yes有2个,no有三个这个时候熵就直接将2/5和3/5带入公式就好啦。最终算出来了3种情况下的熵值。

再继续来看!outlook取不同情况的概率也是不一样的,这个是可以计算出来的相当于先验概率了,直接可以统计出来的,这个也需要考虑进来的。然后outlook竞选大当家的分值就出来啦(就是信息增益)等于0.247。同样的方法其余3个特征的信息增益照样都可以计算出来,谁的信息增益多我们就认为谁是我们的大当家,这样就完成了根的选择,接下来二当家以此类推就可以了!

我们刚才给大家讲解的是经典的ID3算法,基于熵值来构造决策树,现在已经有很多改进,比如信息增益率和CART树。简单来说一下信息增益率吧,我们再来考虑另外一个因素,如果把数据的样本编号当成一个特征,那么这个特征必然会使得所有数据完全分的开,因为一个样本只对应于一个ID,这样的熵值都是等于零的,所以为了解决这类特征引入了信息增益率,不光要考虑信息增益还要考虑特征自身的熵值。说白了就是用 信息增益/自身的熵值 来当做信息增益率。

我们刚才ID3算法是决策树的一个经典的构造算法,在一段时期内曾是同类研究工作的比较对象,但通过近些年国内外学者的研究,ID3算法也暴露出一些问题,具体如下:讨论的例子中使用的是离散型的数据,那连续值的数据咋办呢?通常我们都用二分法来逐一遍历来找到最合适的切分点!

下面再来唠一唠决策树中的剪枝任务,为啥要剪枝呢?树不是好好的吗,剪个毛线啊!这个就是机器学习中老生常谈的一个问题了,过拟合的风险,说白了就是如果一个树足够庞大,那么所有叶子可能只是一个数据点(无限制的切分下去),这样会使得我们的模型泛化能力,在测试集上没办法表现出应有的水平,所以我们要限制决策树的大小,不能让枝叶太庞大了。

最常用的剪枝策略有两种:

(1)预剪枝:边建立决策树边开始剪枝的作

(2)后剪枝:建立完之后根据一定的策略来修建

这些就是我们的决策树算法啦,其实还蛮好的理解的,从上到下基于一种选择标准(熵,GINI系数)来找到最合适的当家的就可以啦!

决策树方法的基本思想是什么

一个特征的信息增益/基尼系数越大,表明特征对样本的熵减少的能力更强,这个特征使得数据由不确定性变成确定性的能力越强。

对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。即通过一系列规则对数据进行分类的过程。

使用特征a的信息增益除以特征a的固有值,就是信息增益比了,使用信息增益比来划分的决策树算法叫C4.5算法。

顺便问句,是拿去看的还是打成电子稿的啊,o(∩_∩)o 考试。

决策树同时也可以依靠计算条件概率来构造。

决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。

决策树方法最早产生于上世纪60年代,到70年代末。由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。

对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。即通过一系列规则对数据进行分类的过程。

顺便问句,是拿去看的还是打成电子稿的啊!o(∩_∩)o 考试顺利啊~~~~

决策树与随机森林

接下来咱们就得唠唠如何选择大当家了,我们提出了一个概念叫做熵(不是我提出的。。。穿山甲说的),这里并不打算说的那么复杂,一句话解释一下,熵代表你经过一次分支之后分类的效果的好坏,如果一次分支决策后都属于一个类别(理想情况下,也是我们的目标)这时候我们认为效果很好嘛,那熵值就很低。如果分支决策后效果,什么类别都有,那么熵值就会很高,公式已经给出,log函数大家自己画一下,然后看看概率[0,1]上的时候log函数值的大小(你会豁然开朗的)。

决策树(decision tree)是一种基本的分类与回归方法,本文主要讨论用于分类的决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的,也可以认为是定义在特征空间与类空间上的条件概率分布,其主要优点是模型具有可读性,分类速度快。决策树学习通常包括三个步骤:特征选择,决策树的生成和决策树的修剪。而随机森林则是由多个决策树所构成的一种分类器,更准确的说,随机森林是由多个弱分类器组合形成的强分类器。

信息增益表示得知特征A的信息而使得数据X的信息的不确定性的程度。

本文将先对决策树特征选择的算法ID3, C4.5和CART进行计算,然后介绍决策树的剪枝策略,介绍随机森林。

基尼指数:反映从数据集D中随机抽取两个样本,其类别标记不一致的概率,也可以理解为1-随机抽取两个样本类别一致的概率。

在 信息论 中, 条件熵 描述了在已知第二个随机变量X的前提下,随机变量Y的信息熵还剩多少。基于X条件的Y的信息熵,用H(Y|X)表示。

首先需要知道的是熵的公式:

决策树分类从根开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子。每一个子对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶,将实例分配到叶的类中。

决策树学习的算法通常是一个递归地选择特征,并根据该特征对训练数据进行划分。如果利用一个特征进行分类的结果与随机分类的结果没有很大别,则称这个特征是没有分类能力的。通常特征选择的准则是信息增益或信息增益比,特征选择的常用算法有ID3,C4.5,CART。

信息增益定义:特征A对训练数据集D的信息增益g(D, A)定义为D的经验熵H(D)与给定特征A的条件下D的经验条件熵H(D|A)之,即:

根据信息增益选择特征的方法是:对于给定数据集D,计算其每个特征的信息增益,并比较他们的大小,选择信息增益的特征。使用信息增益选择特征的算法称为C3算法。

信息增益值的大小是相对于训练数据集而言的,并没有意义。在分类为题困难时,也就是说在训练数据集的经验熵大的时候,信息增益值会偏大。反之,信息增益值会偏小。因此,使用信息增益比可以对这一问题进行校正,这是另一种特征选择算法,也即C4.5算法。

信息增益比定义 :特征A对训练数据集D的信息增益比g R (D, A)定义为其信息增益g(D, A)与训练集D的经验熵之比:

基尼指数是CART分类树用来选择特征的算法,同时决定了该特征的二值切分点。

定义:设有K个类,样本点属于第k类的概率为p k ,则概率分布的基尼指数定义:

对于给定的样本D,其基尼指数为:

决策树的剪枝往往通过极小化决策树整体的损失函数来实现。

设树T的叶个数为|T|,t是树T的叶,该叶有N t 个样本点,其中k类的样本点有N tk 个,k=1,2,3...K, H t (T)为叶t上的经验熵, α>=0为参数,则决策树学习的损失函数可以定义为:

因此,剪枝就是在确定了α时,选择损失函数最小的树。

参考:

《统计学习方法》李航

机器学习. 邹博

1-2 决策树划分时的特征选择依据

依据不同的决策树算法,在划分子时进行特征选择的依据有信息增益、信息增益比(又称信息增益率)、基尼系数三种。依次阐述如下:

0. 什么是信息熵?

如果没有学过信息论等与信息理论相关的书,初看信息熵是会有点懵逼的。在机器学习领域,信息熵的定义如下:

信息熵是度量样本纯度的一种最常用的指标,设样本D的样本数一共有D个,一共有K类(标签),其中第k类样本所占的比例为pk,则该样本集的信息熵为:

有两点可以加强理解:① 信息熵是一这一章主要介绍了决策树是什么,如何构建决策树;前三节针对离散值来对决策树的构建进行说明,而第四小节针对连续值如何处理构建决策树进行说明。个与类别标签相关,而与特征无关的量;②其实际反映的就是这个样本集中不同类别的样本的 占比情况 ,也就是前面所说的 纯度 。

如何直观的理解信息熵?可以从熵的最初概念出发,熵是表示体系混乱程度的度量,熵越大自然纯度就越小。

吊诡的地方在哪里呢?在于前面的信息二字,信息熵越大到底代表信息量越大还是信息量越小?如果我们把信息量理解的直观一点,两者是反着的,信息熵越大,能给我们利用的信息就越少。

举个简单的栗子,样本集D有10个人。如果是5个好人5个坏暂无人,信息熵就会大于8个好人2个坏人的情况。

为什么呢?因为5:5的比例确实带不来任何信息,设我们现在就只有这么个样本集,然后来一个新样本,我们判断这个新样本是个好人还是坏人?5:5的样本集告诉我们,有0.5的概率是好人0.5的概率是坏人,也就是跟随机抛硬一样,无论我们给新样本定什么标判断纯度的高低有三种常用的指标,也是三种决策树算法常使用的。签,都有50%的错误率。但设我们的样本集是8:2,其它什么特征都不用,我们可以判断,这个新样本80%的概率是好人,20%的概率是坏人,所以我们应该无脑的把所有人都判断为好人,这样我们预计只有20%的错误率。

这就是信息熵发挥的作用,样本类别越均衡,就是纯度越小,信息熵越大,可用的信息就越少。

前面扯了这么多废话把信息熵弄明白,信息增益就简单多了。如果我们按照某个特征的取值,把原始样本集划分为若干个子集,然后用某种方式求一下这些子集的信息熵“之和”,我们希望什么,我们希望划分后的信息熵要减小得尽可能的多, 这个信息熵的减小量,就是信息增益 。

个问题:划分后的子集信息熵之和怎么算?按照信息熵定义,每个子集都能算一个信息熵出来,简单求个和吗?那肯定不行,毕竟还有个样本量的问题,把样本量考虑进去,就相当于给每个子集的信息熵配一个权重,这个权重就是这个子集的样本数占样本总数的比例,然后加权求个和,这就是划分子集后的信息熵求法。

用原始的信息熵减去上面这个划分后的信息熵,就是信息增益咯。再说一遍,信息增益就是信息熵的减小量。

补充点废话:信息增益大意味着什么?意味着划分后的样本集们普遍的信息熵较小,也就是纯度较大,纯度较大意味着什么,意味着划分后的各个子集有可能这个子集全是好人,那个子集全是坏人,这不正是我们想要的吗,我们要的恰恰就就是根据特征来有效判断人的好坏,所以选信息增益大的特征进行样本划分也就是理所当然的了。

2. 信息增益比(率)

信息增益有什么问题?设我们有两个特征可供选择,性别与年龄,其中性别的取值只有男和女两种,而年龄的取值有18、19、20、...、64、65几十个。这会带来什么问题呢?定性想一下,特征取值越多,划分后的各个子集就会越小,而越小的子集其分布就越有可能偏。还是按前面的栗子来说,10个人按性别划分成5个男人5个女人,而这两个子集里有分别都有好人和坏人,信息增益可能just soso,但如果按年龄分,设10个人恰好是10个不同的年龄,那划分后每个子集里要么是一个好人要么是一个坏人,纯度杠杠的,信息增益杠杠的。但这是否代表年龄真的是个更好用得特征?并不是,这是因为我们的样本集终究是有限个样本构成的,当特征取值很多时,子集越小,越小就越有可能出现统计学意义上的偏,从而使其信息增益看起来大。废话了这么多,想说明什么问题呢?就是 “依据信息增益划分子集”这个标准会偏爱可取值数多的特征,而这个特征在刻画样本时不一定强 。

为了平衡这一点,我们要设法对信息增益做个类似归一化的作,让不同特征间能有可比性。归一化肯定要考虑特征取值数了,但直接把信息增益除以特征取值数就太简单粗暴了,因此我们再定义一个指标,这个指标称之为特征的固有值,整体上与特征的可取值数会正相关,定义如下:

前面说过,信息增益会偏爱取值数较多的特征,那么信息增益比是不是一视同仁了呢?没有, 信息增益比会偏爱取值数较少的特征 (捂脸哭)。所以最机智的做法应该是设法结合两者。

其实决策树的划分这个事儿吧,搞这么多指标出来自然有它的理由,但这些指标说来说去呢,为的都是一件事儿,那就是我们要 找到最有用的特征 来划分。那什么是最有用呢?就是 能最有效的区分样本的类别。 不管什么指标,本质上度量的都是这个事儿。

基尼系数自然也是如此了,基尼系数 反映了 从样本集中随机抽取两个样本,其类别标记不一致的概率,原始样本集的基尼系数这么算:

为毛说基尼系数反映了随机选取的两个样本类别不一致的概率呢?pk是不同类别的样本所占的比例,因此它们的和为1,一堆介于0~1之间的pk的平方和,什么时候最小?当所有的pk相等的时候平方和最小,这个可以用初中数学知识证明。而当每个类别所占的比例都一样的时候,随机抽取的两个样本不一样的概率。比如,在5个好人5个坏人里随机抽俩人,这俩人一个是好人一个是坏人的概率还是蛮大的,但如果在9个好人1个坏人里抽俩人,这俩人就有更大概率是两个好人。因此基尼系数度量的也是纯度,由于前面有个1-,基尼系数越大,意味着纯度越小(也意味着信息熵越大)。

理解了基尼系数和信息熵反应的本质是一样的之后,这事就好说了,信息增益是信息熵的减小量,对比想一下这儿就是用划分后基尼系数减小量咯?不多,但不完全一样,这里是直接用了划分后基尼系数,哪个特征最小就用哪个。为毛呢?因为划分前大家都是一个基尼系数啊,划分后基尼系数最小,可不就是划分后基尼系数减小量嘛,所以是一回事。从这个角度来说,前面用信息增益也没必要,直接用划分后信息熵最小的那个就行了,效果是一样一样的。

使用基尼系数划分特征的决策树算法叫CART算法。CART的全称是classify and regression tree(分类和回归树),回归树是什么玩意,以后再说了。

如何画决策树

1. 信息增益

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。

决策树是一种树形结构,其中每个内部表示一个属性上的测试,每个分支代表一个测试输出,每个叶代表一种类别。

分类树(决策树)是一种十分常用的分类方法。他是一种监管学习,所谓监管学习就是给定一堆样本,每个样本都有一组属性和定义都清楚后,我们就来看看什么是信息增益了。 信息增益: ,简单点说就是D的信息熵减去按 属性分类后各子集的信息熵的加权平均。一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。

机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根到该叶所经历的路径所表示的对象的值。决策树单一输出,若欲有复数输出,可以建立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。

决策:通常用矩形框来表示

机会:通常用圆圈来表示

终结点:通常用三角形来表示

决策树学习也是资料探勘中一个普通的方法。在这里,每个决策树都表述了一种树型结构,它由它的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的分割进行数据测试。这个过程可以递归式的对树进行修剪。 当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程就完成了。另外,随机森林分类器将许多决策树结合起来以提升分类的正确率。

决策树如果依靠数学的计算方法可以取得更加理想的效果。 数据库已如下所示:

(x, y) = (x1, x2, x3…, xk, y)

相关的变量 Y 表示我们尝试去理解,分类或者更一般化的结果。 其他的变量x1, x2, x3 等则是损失函数中C(T)表示模型对训练数据的预测误,也即拟合程度。|T|表示模型复杂度,即越多模型越复杂,使用参数α来控制两者之间的影响。α越大模型越简单,对数据拟合;α越小模型越复杂,对数据拟合性好;α=0时则不考虑模型复杂度。帮助我们达到目的的变量。

"机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根到该叶所经历的路径所表示的对象的值。决策树单一输出,若欲有复数输出,可以建立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。

决策:通常用矩形框来表示

机会:通常用圆圈来表示

终结点:通常用三角形来表示

决策树学习也是资料探勘中一个普通的方法。在这里,每个决策树都表述了一种树型结构,它由它的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的分割进行数据测试。这个过程可以递归式的对树进行修剪。 当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程就完成了。另外,随机森林分类器将许多决策树结合起来以提升分类的正确率。

决策树如果依靠数学的计算方法可以取得更加理想的效果。 数据库已如下所示:

(x, y) = (x1, x2, x3…, xk, y)

相关的变量 Y 表示我们尝试去理解,分类或者更一般化的结果。 其他的变量x1, x2, x3 等则是帮助我们达到目的的变量。"

利用visio2003或VISIO2007可以画出较为专业的决策树

【理论篇】决策树算法 - 信息增益率、GINI系数

使用信息增益来划分的前面三节的决策树生成都以离散值为例,这里讲一下连续值如何生成决策树。决策树算法叫ID3算法

ID3 决策树算法在特征选择时存在什么问题呢?

我们先来看一个新定义, 信息熵 用来度量样本纯度的常用指标。 定当前样本D中第K类样本所占比例为 ,则D的信息熵为:

我们来举个例子:数据集 A 存在一个非常稀疏的特征 ID 列,我们知道 ID 是不重复的,种类自然就会非常庞大。

这个时候,如果我们使用 ID 去切分数据集,那切分到,每个样本都会被分配到单独的样子结点上,每个样子结点的数据只有一样,不确定性为 0 ,熵值也为 0 。

那这样是不是就说名 ID 这个特征非常好呢?根据 ID 就能预测标签?当然不是,实际上 ID 这个特征毫无意义。

小鱼这里拿 ID 举例,只是个极端的例子。但足以说明,对于类似 ID 这样数据种类非常多,分布非常稀疏的特征来说,ID3 决策树算法通过信息增益来选取结点特征是远远不够的。

为了解决 ID3 决策树算法的问题,我们引入了信息增益率,计算信息增益时,考虑特征分布的自身熵。

C4.5 决策树算法使用信息增益率来衡量特征的分类能力。所谓信息增益率就是在信息增益的基础上除以该特征自身的熵值计算而来。

为什么要除以特征自身的熵值呢?我们举个例子:还是刚才的 ID 特征,ID 特征切分完数据后的熵值为 0 ,原始数据集的熵值为 G,特征 ID 的熵值为 -n(1/n)log(1/n) = -log(1/n) 其中 n 为数据集样本的个数。因此,特征 ID 的熵 G2 是一个非常庞大的数值。

使用 ID 切分数据集之后,得到的信息增益为:G - 0 = G,信息增益非常大,分类效果堪称完美。但如果使用信息增益率去衡量,则:(G - 0)/G2,其中 G2 一定是远远大于 G 的,因为很显然标签的混乱层度远低于 ID 列的混乱层度。

GINI 系数和熵的衡量标准类似,只是计算方式不同。GINI 系数的公式为:

当概率 P 为 0 或者 1 时,此时没有不确定性。其中概率为 1 时,GINI系数为 0 ,概率为 0 时,GINI 系数也为 0 。

信息增益准则为什么对可取值数目较多的属性有所偏好

首先,确定划分属性,我们从没有属性值缺失的样本入手来判断属性a的优劣;划分则将给样本赋予一个权重,有确定属性值的样本权重为一,缺失属性值的样本按权重划分。

(1)信息增益的计算依赖于特征数目较多的特征,而属性取值最多的属性并不一定。

(2)ID3是非递增算法。

(4)抗噪性,训练例子中正例和反例的比例较难控制。

决策树的经典构造算法——C4.5(WEKA中称J48)

由于ID3算法在实际应用中存在一些问题,于是Quilan提出了C4.5算法,严格上说C4.5只能是ID3的一个改进算法。

C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:

1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;

2) 在树构造过程中进行剪枝;

3) 能够完成对连续属性的离散化处理;

4) 能够对不完整数据进行处理一个决策树包含三种类型的:。

C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排(3)ID3是单变量决策树(在分枝上只考虑单个属性),许多复杂概念的表达困难,属性相互关系强调不够,容易导致决策树中子树的重复或有些属性在决策树的某一路径上被检验多次。序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。

决策树的原理及算法

3. 基尼系数

决策树基本上就是把我们以前的经验总结出来。我给你准备了一个打篮球的训练集。如果我们要出门打篮球,一般会根据“天气”、“温度”、“湿度”、“刮风”这几个条件来判断,得到结果:去打篮球?还是不去?

上面这个图就是一棵典型的决策树。我们在做决策树的时候,会经历两个阶段:构造和剪枝。

构造就是生成一棵完整的决策树。简单来说,构造的过程就是选择什么属性作为的过程,那么在构造过程中,会存在三种:

根:就是树的最顶端,最开始的那个。在上图中,“天气”就是一个根;

内部:就是树中间的那些,比如说“温度”、“湿度”、“刮风”;

叶:就是树部的,也就是决策结果。

剪枝就是给决策树瘦身,防止过拟合。分为“预剪枝”(Pre-Pruning)和“后剪枝”(Post-Pruning)。

预剪枝是在决策树构造时就进行剪枝。方法是在构造的过程中对进行评估,如果对某个进行划分,在验证集中不能带来准确性的提升,那么对这个进行划分就没有意义,这时就会把当前作为叶,不对其进行划分。

后剪枝就是在生成决策树之后再进行剪枝,通常会从决策树的叶开始,逐层向上对每个进行评估。如果剪掉这个子树,与保留该子树在分类准确性上别不大,或者剪掉该子树,能在验证集中带来准确性的提升,那么就可以把该子树进行剪枝。

1是欠拟合,3是过拟合,都会导致分类错误。

造成过拟合的原因之一就是因为训练集中样本量较小。如果决策树选择的属性过多,构造出来的决策树一定能够“完美”地把训练集中的样本分类,但是这样另外,无论是ID3还是C4.5在小数据集上使用,决策树分类一般只试用于小数据。当属性取值很多时选择C4.5算法,ID3得出的效果会非常。就会把训练集中一些数据的特点当成所有数据的特点,但这个特点不一定是全部数据的特点,这就使得这个决策树在真实的数据分类中出现错误,也就是模型的“泛化能力”。

p(i|t) 代表了 t 为分类 i 的概率,其中 log2 为取以 2 为底的对数。这里我们不是来介绍公式的,而是说存在一种度量,它能帮我们反映出来这个信息的不确定度。当不确定性越大时,它所包含的信息量也就越大,信息熵也就越高。

ID3 算法计算的是信息增益,信息增益指的就是划分可以带来纯度的提高,信息熵的下降。它的计算公式,是父亲的信息熵减去所有子的信息熵。

公式中 D 是父亲,Di 是子,Gain(D,a) 中的 a 作为 D 的属性选择。

因为 ID3 在计算的时候,倾向于选择取值多的属性。为了避免这个问题,C4.5 采用信息增益率的方式来选择属性。信息增益率 = 信息增益 / 属性熵,具体的计算公式这里省略。

当属性有很多值的时候,相当于被划分成了许多份,虽然信息增益变大了,但是对于 C4.5 来说,属性熵也会变大,所以整体的信息增益率并不大。

ID3 构造决策树的时候,容易产生过拟合的情况。在 C4.5 中,会在决策树构造之后采用悲观剪枝(PEP),这样可以提升决策树的泛化能力。

悲观剪枝是后剪枝技术中的一种,通过递归估算每个内部的分类错误率,比较剪枝前后这个的分类错误率来决定是否对其进行剪枝。这种剪枝方法不再需要一个单独的测试数据集。

C4.5 可以处理连续属性的情况,对连续的属性进行离散化的处理。比如打篮球存在的“湿度”属性,不按照“高、中”划分,而是按照湿度值进行计算,那么湿度取什么值都有可能。该怎么选择这个阈值呢,C4.5 选择具有信息增益的划分所对应的阈值。

针对数据集不完整的情况,C4.5 也可以进行处理。

请你用下面的例子来模拟下决策树的流程,决策树生成算法产生的决策树对于训练数据的分类往往很准确,但对于未知数据的分类却没有这么准确,即容易出现过拟合情况。解决的办法便是考虑树的复杂度,对已生成的树进行剪枝简化。设好苹果的数据如下,请用 ID3 算法来给出好苹果的决策树。

「红」的信息增益为:1「大」的信息增益为:0

因此选择「红」的作为根,「大」没有用,剪枝。

数据分析实战45讲.17 丨决策树(上):要不要去打篮球?决策树来告诉你

西瓜书 第四章 决策树

条件熵的推导公式如下:

决策树: 基于树状结构,根据样本的属性来对样本进行判断、决策。如:给一个西瓜的各种属性,色泽=“青绿”、根蒂=“缩卷”、声音=“浊响”,通过这些属性来判断这一个西瓜是否为好瓜。

决策树的 叶结点 对应 决策结果 ,而其他结点则对应一个属性的测试, 根结点 则是包括全部样本。

怎样来选择属性呢?按属性来划分目的就是让决策树的每一分结点的样本尽可能是同一类,即结点的 “纯度” 越来越高。

【注】 信息熵越小,D的纯度越高

定离散属性 有V个可能取值 ,若用 属性对样本D进行分类则有V个分支结点,第v个分支结点包含D中所有在属性 取值为 的样本,记为 ; 表示 的 信息熵 ; 表示属性 取值为 的样本占总样本的比重。

【注】信息增益越大,说明按这个属性分类后对纯度的提高越大;信息增益是ID3决策树学习算法的常用指标。

增益率是C4.5决策树算法的常用指标,它是信息增益的改进。

定义: ,被称为属性a的“固有值”。

先将各个属性的【注】t一般选择两个相邻属性值的中心点, 信息增益 算出来。得到其 平均值 ,将高于平均值的那些属性选出,再选择其中 增益率 的属性。

公式:

当我们要计算一个属性a的基尼指数时:

【注】基尼指数最小的属性为划分属性

剪枝处理是决策树学习算法应付“过拟合”的主要手段,基本策略有 “预剪枝” 和 “后剪枝” 。

预剪枝:在生成决策树过程中,对每个结点在划分前先估计,若划分后可以提高决策树的泛化能力则划分,否则就以当前结点为叶结点。

后剪枝:先从训练集生成完整的决策树,再自底向上进行判断,将当前结点替换为叶结点能否提高泛化能力,若可以则替换。

要如何判断泛化性能是否提高,这用到前面第二章提到的性能评估,以留出法为例,预剪枝在生成结点前判断生成前后的精度,精度大则泛化能力强,来看是否生成;后剪枝则生成决策树后判断替代前后的精度,看是否替换(书本的例子简单易懂,我这里就不过多简述)。

额外提一下:第三章的线性回归则需要将离散值化通过序连续化或向量化转化为连续值。第四章决策树则需要将连续值离散化。

二分法: 定连续属性 在样本集D上有n个不同的取值,将这些值从小到大排序,记为 ,我们可以取一个划分点t将D分为子集 ,其中 包含那些在属性a上取值小于t的样本,而 则是取值大于t的样本。将D一分为二,故称为二分法。

在使用二分法后,对于划分的点,我们需要判断这样划分是否,所以就需要用到前面提到的 信息增益 , 连续值的信息增益: .

【注】信息增益越大,则其划分越优;且连续值属性作为当前结点的划分属性后,该属性还能作为后代结点的划分属性,这是与离散值属性不同的地方。

面对样本部分属性缺失的情况下,丢弃这些样本会造成信息浪费,且样本数本来有限丢失后有可能使学习器欠拟合。

面对缺失部分属性值的样本集,我们需要解决两个问题:①如何确定划分属性②给定划分属性后,那些缺失属性值的样本怎么划分。

对属性a,表示缺失值样本所占比例。

对属性a,表示无缺失值样本中第k类所占的比例。

对属性a,表示无缺失值样本中在属性a上取值 的样本所占比例。

信息增益: ,其中

通过上面的信息增益来判断出将哪个属性作为划分属性,这样划分属性就确定下来了,以上就是决策树划分时特征选择所用的三个指标。第二个问题就是将缺失属性值的样本按权重分入各个分支中。 举个例子更容易懂:如以属性a为划分属性,a有三个取值1,2,3先将有确定属性值的样本放入分支,设共有10个样本其a属性有确定属性值,属性值为1有5个,属性值为2有3个,属性值为3有2个,那么这时候某个没有确定属性值的样本则在各分支点权重为 。

将每个属性视为坐标空间的一个坐标轴,那么d个属性的样本对于d维空间的一个点。

决策树形成的分类边界有一个明显特点: 轴平行,即它的分类边界若干个与坐标轴平行的分段组成。