机器学习笔记E5--决策树ID3、C4.5与CART

  • 决策树思想
  • 特征选择
    • 信息增益与ID3
    • 信息增益率与C4.5
    • 基尼指数与CART
    • ID3、C4.5与CART的对比
  • 决策树剪枝
  • 对连续值的处理
  • 对缺失值的处理
  • 多变量决策树

两人去轩辕台路上遇雨,郭靖道:那么咱们快跑。黄蓉摇了摇头:靖哥哥,前面也下大雨,跑过去还不是一般的淋湿?郭靖笑道:正是。黄蓉心中却忽然想起了华筝之事:“前途既已注定了是忧患伤心,不论怎生走法,终究避不了、躲不开,便如长岭遇雨一般。”当下两人便在大雨中缓缓行去。# 1903 <长岭遇雨>


一、决策树(Decision Trees)

决策树学习算法的构造思想很接近于人做决策的行为,通过 if-then-else 的决策规则来得到结论或是进入下一次决策中。

举个例子,例如中午到饭点了,我需要决定出去吃还是点外卖,

  1. 第一个 if 是外面是否下雨了,如果没下雨,(then)那就出去吃,做出决定,决策结束。(else)但是如果下雨了,就再看是否有人约,这就是第二次决策,依然是 if-then-else 。
  2. 如果有人约,那么出去吃,决策结束。没人约,那就点外卖,并且没有了其他的 if 条件可以影响决策的,同样的,决策结束。
分类决策树由有向边和结点组成(别看了,没人约你的)

每一次的做决策的结果都是得到结论,或是导出进一步决策的问题,其考虑范围是在上一次决策结果的限定范围之内,例如在 “是否下雨 --> 下雨” 之后再判断 “是否有约--> ?”,则只是在考虑下雨时是否有约的情况。

决策树学习算法的目的就是创建一种模型,从数据特征中依据特征的重要程度一步步预测目标样本的值。

决策树学习算法通常包括特征选择、决策树生成和剪枝三个步骤。

二、特征选择

特征选择的标准有信息增益、信息增益率和基尼指数, 特征选择决定用哪个特征划分特征空间。在介绍信息增益之前,先来看信息熵和不纯度。

2.1、信息熵与不纯度

本来是表示分子状态混乱程度的一个物理量,也可以作为一个系统的混乱程度的标准; 信息 是某种确定性的增加 (你掌握了某种信息,该事物的行为对你而言就可以预见,例如你上班的地方每正点和半小时有一趟车,那你在家的时候就大致可以估计到下一次车什么时候来,你赶不赶的上)

信息熵 可以理解为某种信息不稳定程度,即信息熵越小,事件越稳定,也就是发生概率越大,搞清楚这个事件所需要的信息也就越小

香农用信息熵的概念来描述信源的不确定度。

而这个不稳定程度,可以理解为“ 不纯度 ”,数据的纯度高,意味着在数据集里我们要分类的某一种类型的占比很高,会更容易区分。例如在一个集合中,结果A占100%,B占0%,这个数据集就很纯(不纯度就很低),我们在进行分类时根本不需要费心。而在这个集合中,结果A占50%,B占50%,这个数据集就很不纯(不纯度很高),在我们进行分类时,就很难过了,无异于随机猜测。

2.2、信息增益-ID3

在有了不纯度的概念以后,我们只需要将决策分类之后的不纯度和分类前的不纯度相减,就可以得到一种纯度提升值的概念。我们称之为 信息增益

这里给出具体的数学表达。

假定当前样本集合 D 中第 k 类样本所占的比例为 P_k(k=1,2,......,|y|),则 D 的信息熵定义为

Ent(D) = - \sum_{k=1}^{|y|} P_k log_2 P_k . \tag 1

约定,当p为0时,P log_2 P=0Ent(D) 的最小值为0,最大值为 log_2 |y|.

假定离散属性 aV 个可能的取值 \{ a^1,a^2,a^3,...a^V\} ,在上面吃饭的例子中,是否下雨 就有两种可能的取值 \{下雨、不下雨\}

如果以 a 属性来对数据集 D 进行划分,就会产生V 个分支结点,其中第 v 个分支结点包含了 D 中所有在属性 a 上取值为 a_v 的样本,记为 D^v

什么意思呢,再拿吃饭来讲,我们选取 是否下雨 这个属性来划分整个数据集(假设我每天中午都有记录),就会产生 下雨没下雨 两个分支结点,拿第一个结点 下雨 来说,第一个结点包含了我吃饭这个记录里面所有下雨的情况,即吃饭数据集中 是否下雨 属性值为 下雨 的样本。就是将数据集根据属性的取值分为 v 份,每一份对应一种情况,D^v就对应第 v 种情况。

解释这么多,是因为我在第一次看的时候绕进去了,如果专业看就不用看我这些乱七八糟的例子,自己理解就行。

利用信息熵的公式(1),我们可以计算出 D^v 的信息熵,再考虑到不同分支结点所包含的样本数目不同,我们再给 D^v 的信息熵加上各自结点的权重 |D^v|/|D|。而根结点是包括 D 中所有样本的,同样可计算出根节点的信息熵,这样我们就可以得到以属性 a 对样本集 D 进行划分时所获得的 信息增益(information gain)

Gain(D,a) = Ent(D) - \sum^V_{v=1} \frac{|D^v|}{|D|} Ent(D^v)

著名的 ID3决策树学习算法 就是以信息增益为准则来划分属性。

这里还是以西瓜为例好了。

免得说我只知道吃

今天在肯德基看了一天书,回来听朋友吐槽同事和直男。感觉有这么多不好的东西,人和事物,但这也正好是世界的可爱之处呀!#190311


这里是一段计算各个特征信息增益的过程,大晚上的用Markdown写公式会头疼睡不着的,明天白天补充

需要注意的有两点:
1、在选择下一结点的时候为什么不直接使用信息熵,谁小就用谁,而采用信息增益多做一步减法。
2.1、在西瓜书中,选择根结点时,比较信息增益,这个时候根结点的上一结点(不存在,但体现在计算中就是 Ent(D) )选择的是全样本,直接分为 好瓜坏瓜 两类来直接计算信息熵。
2.2、在按纹理划分完后,计算 D^1 色泽信息增益那一步怎么都算不对,不知道哪里有问题


2.3、信息增益率与C4.5

讲了这么多 ID3决策树学习算法,但是他有问题,而且很大。在 E1 里面我们有介绍归纳偏好,而 ID3 就是很明显的对可取值数量较多的特征有偏好

当我们的数据里面有一项是身份信息的时候,m个样本就对应 身份 这个特征有m种可取值,那么在计算信息增益的时候,p_k 会始终为1,这时候 \log_2^{p_k} 就为 0,那么无关于其他因素,这时候的信息增益就是 Ent(D) ,即此时最大的信息增益(也就是此时选身份特征为结点的信息熵为0)。

很多时候这种偏好是没有意义的,只能造成树生成的时候浪费内存资源。

为了解决这一问题,ID3 算法的创造者又对他进行了改进,采用 信息增益率 来代替信息增益作为特征选择的准则。

信息增益率 就是用信息增益除一个 IV(a)

Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}

其中

IV(a)=-\sum^V_{v=1} \frac{D^v}{D} \log_2 \frac{D^v}{D}

称为属性 a 的固有值(instrinsic value),属性 a 的可取值数目越多(即 V 越大),其固有值 IV(a) 通常越大。这样就消除了使用信息增益带来的归纳偏好问题。

但但但是,说了每一种算法都会存在归纳偏好,那采用信息增益率的这种算法它的归纳偏好是什么呢?

它所带来的结果是消除了信息增益的偏好,而指向了相反的一面,信息增益率对可取值数目较少的特征有所偏好

到这里你可能觉得,没完没了了(╯‵□′)╯︵┴─┴ 。所以,C4.5算法 并不是简单的直接选择信息增益率最大的候选划分特征,而是启发式的:先从候选划分特征中找出信息增益高于平均水平的特征,再从中选择信息增益率最高的

2.4、基尼指数与CART

基尼指数

后续内容,

三种特征选择方法的表格比较
决策树剪枝(预剪枝和后剪枝,生成时自上而下和生成后自下而上)
对连续值的处理
对缺失值的处理
多变量决策树

三、决策树剪枝

四、对连续值的处理

五、对缺失值的处理

六、多变量决策树

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • 一. 决策树(decision tree):是一种基本的分类与回归方法,此处主要讨论分类的决策树。在分类问题中,表...
    YCzhao阅读 2,129评论 0 2
  • 1 前言 在了解树模型之前,自然想到树模型和线性模型,他们有什么区别呢? 树形模型是一个一个特征进行处理,之前线性...
    高永峰_GYF阅读 1,377评论 0 1
  •   决策树(Decision Tree)是一种基本的分类与回归方法,其模型呈树状结构,在分类问题中,表示基于特征对...
    殉道者之花火阅读 4,516评论 2 2
  • 天一冷,听见「暖锅」二字就觉得幸福。 自带温度的两个字,写出来纸面上便升起滚烫的蒸汽。而我总觉得,暖锅的范围,听上...
    一尾羊阅读 201评论 0 0
  • 很多事,发生了,过了后才后悔,当初怎么没那样做,为啥没有选择另一种方式。 机会过去了,时间过去了,就再也找不回来。...
    当道阅读 131评论 0 0