决策树学习

下文介绍学习决策树的过程,我们通过例子来更好地理解决策树。

决策树是什么,是一种基本的分类与回归的方法。分类决策树模型是一种描述对实例进行分类的树形结构。

决策树的算法包含:特征选择,决策树的生成、决策树的剪枝过程。

通过下面的例子来更好地了解决策树的机制。

希望通过训练得出决策树,用以对未来的贷款申请进行分类,即当新的客户提出贷款时,直接通过决策树决定是否批准贷款申请。

1.特征选择

特征选择是决定用哪个特征来划分特征空间。

现在存在四种可能的决策树的根节点,年龄(青年、中年、老年),工作(是、否),有房(是、否),信贷状况(非常好、好、一般)。那么问题是选择哪一个作为根特征更好一些?需要通过信息增益来解决。

1.1信息增益

熵(entropy)是表示随机变量不确定性的度量。设x是一个取有限个值的离散随机变量,其概率分布为P(X=xi)=pi,i=1,2,3...,n则随机变量x的熵定义为

条件熵H(Y|X)表示在已知随机变量x的条件下随机变量y的不确定性。


信息增益表示得知特征x的信息而使得y的信息不确定性减少的程度。

特征A对训练数据集D的信息增益g(D,A)=H(D)-H(D|A)。等价于训练数据集中类与特征的互信息。

决策树学习应用信息增益准则选择特征,给定训练数据集D合特征A,H(D)表示对D分类的不确定性,而H(D|A)表示在特征A给定的条件下对数据集D进行分类的不确定性,差值为信息增益。不同的特征会有不同的信息增益,比较大小后信息增益大的特征具有更强的分类能力。

那么通过例子计算信息增益:

1.计算经验熵H(D)

2.计算四个特征的信息增益。

设A1,A2,A3,A4表示年龄、有工作、有房子、信贷状况。

年龄:D1,D2,D3为青年,中年,老年。

工作:D1,D2位是,否。

房子:

信贷状况:

其中A3的信息增益最大,则为最优特征。

在C4.5中使用信息增益比计算特征值:gR(D,A)=g(D,A)/H(D).

2.决策树的生成

2.1 ID3算法

决策树的各个节点上应用信息增益准则选择特征,递归构建决策树,具体方法是从根节点开始,对节点计算所以可能的特征信息增益,选择信息增益最大的特征作为节点的特征,在对子节点递归调用以上方法构建决策树。

由于特征A3的信息增益最大,所以选择特征A3为根节点,他可以划分为两个子集D1(A3为是),D2(A3为否),由于D1样本点均同意贷款,所以他成为一个没有子节点的叶节点。

对于D2需要从特征A1,A2,A4中选择最大特征作为其子节点。那么要计算信息增益:

A2的信息增益最大,那么作为房子后的节点。

工作有两个值是和否,但是由于没有房子但工作为是的有放了贷款,没有房子但是没有工作的都没有放贷,所以无需再增加子节点,该决策树只使用两个特征构成决策树。

2.2 C4.5

C4.5与ID3的区别在于使用信息增益比计算gR(D,A)=g(D,A)/H(D)。

2.3 CART分类与回归树

CART(classification and regression tree)的算法整体过程和上面的差异不大,然是CART的决策是二叉树的每一个决策只能是“是”和“否”,换句话说,即使一个feature有多个可能取值,也只选择其中一个而把数据分类两部分而不是多个,这里我们主要讲一下分类树,它用到的是基尼指数。

cart决策树生成就是递归地构建二叉决策树的过程,对回归树用平方误差最小化准则,对分类树用基尼指数最小化准则,进行特征选择,生成二叉树。

1.回归树的生成:?

最小二乘回归树生成算法:

2.分类树的生成:

首先计算各个特征的基尼指数,分别以A1,A2,A3,A4表示年龄、工作、房子和信贷状况,以1,2,3表示年龄的青年、中年、老年,已1,2表示是、否,已1,2,3表示信贷状况的非常好、好、一般。

》求A1的基尼指数:

Gini(D,A1=1)=P(A1=1)Gini(D1)+P(A1!=1)Gini(D2)

其中5/15为A1的概率,Gini(D1)为青年中放贷的基尼指数2p(1-p),其中p为青年中放贷的概率为2/5,10/15为不是青年的概率,Gini(D2)为不是青年但是放贷的基尼指数2p(1-p),其中p为不是青年但是放贷的概率7/10.

同理,算出其他的基尼指数:

Gini(D,A1=2)=0.48

Gini(D,A1=3)=0.44

由于Gini(D,A1=1)和Gini(D,A1=3)相等,且最小,所以A1=1和A1=3都可以最为A1的最优切分点。

》求特征A2和A3的基尼指数:

由于工作和房子均只有两种情况,是否,是和否的基尼指数相同,所以只有一个切分点。 

Gini(D,A2=1)=5/15Gini(D1)+10/15Gini(D2)=5/15*0+10/15*2*4/10*6/10=0.32

Gini(D,A3=1)=0.27

》求特征A4的基尼指数:

Gini(D,A4=1)=0.36

Gini(D,A4=2)=0.47

Gini(D,A4=3)=0.32

Gini(D,A4=3)最小,所以A4=3为A4的最优切分点。

在4个特征中,Gini(D,A3=1)最小,所以选择特征A3为最优特征,A3=1为最优切分点,于是A3为根节点,有两个子节点,其中一个全为是,则为叶节点,对领完一个节点继续使用以上方法,直至都为叶节点。

递归的停止条件,节点中的样本个数小于预定阈值,或样本集的基尼指数小于一定阈值(样本基本属于同一类)或没有更多特征。

3.剪枝

决策树会一直递归到结束为止,存在过拟合,原因是学习时过多的考虑如何提高对数据分类的准确性,构建了过于复杂的决策树。

前置裁剪在构建决策树的过程时,提前停止。那么,会将切分节点的条件设置的很苛刻,导致决策树很短小。结果就是决策树无法达到最优。实践证明这中策略无法得到较好的结果。

后置裁剪决策树构建好后,然后才开始裁剪。采用两种方法:1)用单一叶节点代替整个子树,叶节点的分类采用子树中最主要的分类;2)将一个字数完全替代另外一颗子树。后置裁剪有个问题就是计算效率,有些节点计算后就被裁剪了,导致有点浪费。

决策树剪枝往往通过极小化决策树整体的损失函数(loss function)或代价函数(cost function)来实现。设树T的叶节点个数为|T|,t是树T的叶节点,该叶节点有Nt个样本点,其中k类的样本点有Ntk个,k=1,2...k,Ht(T)为叶节点t上的经验熵,α>=0为参数,则决策树学习的损失函数可以定义为:

C(T)表示模型对训练数据的预测误差,|T|为复杂度。损失函数为预测误差与复杂度的综合评价。

剪枝,就是当α确定时,选择损失函数最小的模型,即损失函数最小的子树。

如何进行剪枝:

(1)假设减掉最左边第一支,计算一次Cα(T1).

(2)假设减掉最左边第二支,计算一次Cα(T2).

(3)以上述方式递归向上每减掉一支计算一次一次Cα(Tn).

(4)求出Cα(T1)到Cα(Tn)中的最小值。

(5)减去此支,得到最优决策树。

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

推荐阅读更多精彩内容

  • 决策树理论在决策树理论中,有这样一句话,“用较少的东西,照样可以做很好的事情。越是小的决策树,越优于大的决策树”。...
    制杖灶灶阅读 5,756评论 0 25
  • 决策树学习 决策树学习是应用最广的归纳推理算法之一,它是一种逼近离散值函数的方法,对噪声数据又很好地健壮性且能够学...
    贰拾贰画生阅读 3,011评论 0 7
  • 决策树学习的适用问题 通常决策树学习最适合具有以下特征的问题: 实例是由“属性-值”对(pair)表示的。实例是用...
    艾尔温阅读 973评论 0 50
  • PS:看起来简书好像不支持MathJax,文章中的数学公式都没渲染出来,大家将就点看吧...(或者可以访问我的个人...
    gaunthan阅读 1,808评论 0 2
  • “快来接生!夫人要生了!快点快点!” “来了来了!什么情况?!夫人才怀胎八月,怎么突然就要...........
    Mongey阅读 326评论 0 0