决策树基本原理:基于信息增益、增益率与基尼系数的划分选择,预剪枝与后剪枝,多变量决策树以及决策树优缺点概述

一、基本流程

决策树算法是数据挖掘分类算法中常见的一种方法。它以树状结构表现,叶子结点代表分类结果,内部结点描述一个属性,从上到下的一条路径,确定一条分类规则。
[1]谢妞妞.决策树算法综述[J].软件导刊,2015,14(11):63-65.

决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。其名字由两部分构成,也代表了它的两个典型特点:

  • 决策:决策树具有可解释性,这在辅助决策方面非常有用,在实际的决策行为中,不仅需要知道最终结果,最好还能知道得出这样结果的原因和过程。
  • :树形结构有各种非常好的功能和特性,表达能力强。

决策树的一般过程的文字表述

(1)首先,创建结点 t t t,初始情况下训练集中所有样本都与结点 t t t 关联,记为 D t D_t Dt?,将 t t t 记为当前结点。
(2)如果当前结点 t t t 中所有样本类别相同,则将该结点标记为叶子结点,并停止进一步分裂。接着处理其他非叶子结点。否则,进入下一步。
(3)为数据集 D t D_t Dt?选择分裂属性和分裂条件,根据分裂条件将 D t D_t Dt? 分裂为m个自己,为 t t t 创建m个子节点,将分裂出的m个数据集分别与这m个结点关联。依次将每个结点设为当前结点,转到(2)处理,直至所有结点都被标记为叶子结点。

结合下面这个非常简易的例子可以更直观地理解,现在要根据这个数据集构建决策树,以根据一个人的性别、年龄、婚姻等属性判断他的年收入是否大于50w。要注意的是,分类属性的选择并不是随意的,其中有各种判定规则,后续会进行介绍。另外,根据决策树的递归过程,在处理完t1,创建好t3、t4后,未处理的结点有t2、t3、t4,但下一个当前结点应是t3或t4,而不会是t2.

  • 1.当前结点所包含的样本都属于同一类别,无需划分
    • 做法: 将当前结点标记为叶结点,并令该类别为结点的类别
  • 2.所有的属性都已被使用,或所有样本在所有属性上取值相同,无法划分
    • 做法:将当前结点标记为叶结点,但将其类别设定为父结点所含样本最多的类别(利用当前结点的后验分布)
  • 3.当前结点包含的样本集合为空,不能划分
    • 做法:将当前结点标记为叶结点,但将其类别设定为父结点所含样本最多的类别(把父结点的样本分布作为当前结点的先验分布)

我一开始也很疑惑,第二和第三种情况为什么会出现。其实是这样的,如下图所示,李华和张宇所有的属性值都相同,但是年收入的分类却不同,属于第二章情况。这种情况有时候是由于脏数据,数据不一致导致的,而有时候是符合实际情况的,例如性别年龄婚姻都一样但年收入天差地别简直太正常了,这是数据本身的不完全。而第三种情况是这样,如果我们首先按性别划分,然后按婚姻划分,发现女性的子集里全都是未婚的。

注意上述代码块的第9、10行,在当前结点上,对于属性“婚姻”的每一个值,即”已婚/未婚”,都要生产一个分支,所以在女性的子集中进一步划分“已婚”和“未婚”的样本子集。由于女性已婚是空集,该结点的类别标记为父结点中数量最多的那个。

也就是说,对当前结点按某一属性进行划分时,属性的取值集合是看整个数据集中所有样本的值,而不是只看当下的子集。否则,就不会有“女——已婚”的分支,那么如果测试数据中有一个女性已婚样本,决策树就无法做出判断。

决策树基本原理:基于信息增益、增益率与基尼系数的划分选择,预剪枝与后剪枝,多变量决策树以及决策树优缺点概述

二、划分选择

如何选择最优点划分属性般我们希望,决策树的分支结点所包含的样本尽可能属于同一类别,即结点的纯度(purity)越来越高。 所以,选择划分属性就是看:按照哪一个属性进行划分能使结点的纯度升高的程度最大。

1. 信息增益(ID3算法)

ID3算法是一个从上到下、分而治之的归纳过程。 ID3算法选择具有最高信息增益的属性作为测试属性。

首先,“纯度”要用什么指标来衡量呢strong>信息熵(information entropy) 是度量样本集合纯度最常用的一种指标。假定当前样本集合 D D D 中第k类样本所占的比例为 p k ( k = 1 , 2 , . . . , n ) p_k(k=1,2,…,n) pk?(k=1,2,...,n) D D D 的信息熵定义为 E n t ( D ) = ? ∑ k = 1 n p k l o g 2 p kEnt(D)=-sum_{k=1}^np_klog_2p_k Ent(D)=?k=1n?pk?log2?pk? 注:
(1) p = 0 p=0 p=0,则 p l o g 2 p = 0 plog_2p=0 plog2?p=0
(2) E n t ( D ) Ent(D) Ent(D) 最大为 l o g 2 n log_2n log2?n,最小为 0。
(3) E n t ( D ) Ent(D) Ent(D)越小,则 D D D 纯度越高。

信息熵是怎么度量纯度的呢合纯度是怎么影响熵值变化的呢解“熵”的原始含义以及熵是如何引入信息论的将有助于进行理解。
1、从熵到信息熵,熵在不同领域的含义
2、熵的引入与各种不同的熵

假设数据集 D D D 中所有样本都是同一类别, E n t ( D ) = 0 Ent(D)=0 Ent(D)=0

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月17日
下一篇 2021年11月17日

相关推荐