Decison Tree

  基本概念的定义、解释、总结。

相关概念

1、信息量

  只能通俗地讲下,随机变量 X X 存在多个取值,如果一个事件发生概率为1,那么他一定会发生,完全没有信息量。概率越小的事件(取值)发生时,它所含的信息量越大。(参考统计学里的p-value,所谓事出反常必有妖)。可以想到信息量和事件发生的概率成正比。
  定义:出现概率为p的消息所含的信息量。

I=log(p)

  函数图像如下:

curve(expr = -log(x))

这里写图片描述

2、熵

  衡量某一个事件(随机变量的某个取值)的信息量可以用上面的定义表示,那么衡量某一个变量的信息量容易想到用数学期望。
  定义:
熵是表示随机变量不确定性的度量。设 X X 是一个取有限个值的离散随机变量,其概率分布为:

P(X=xi)=pi,i=1,2,...n

则随机变量 X X 的熵定义为
H(X)=i=1npilogpi

  熵越大,随机变量的不确定性就越大。范围为 0H(p)log(n) 0 ⩽ H ( p ) ⩽ l o g ( n ) 。最大值取到 log(n) l o g ( n ) 据说可以用凸优化的知识证明。容易知道当随机变量所有取值发生的概率均为 1n 1 n 时,取到最大值。直观来说,此时随机变量任意一个取值发生的概率相同,该随机变量的不确定性最大。

3、条件熵

  条件熵表示在已知随机变量 X X 的条件下随机变量Y的不确定性。定义为:

H(Y|X)=i=1npiH(Y|X=xi),pi=P(X=xi),i=1,2,...n H ( Y | X ) = ∑ i = 1 n p i H ( Y | X = x i ) , 其 中 p i = P ( X = x i ) , i = 1 , 2 , . . . n

4、信息增益

  信息增益表示得知特征 X X 的信息而使得类Y的信息的不确定性减少的程度。信息增益大的特征分类的能力更为强大。定义为集合 D D 的经验熵H(D)与特征 A A 给定这一条件下D的经验条件熵 H(D|A) H ( D | A ) 之差:

g(D,A)=H(D)H(D|A) g ( D , A ) = H ( D ) − H ( D | A )

5、信息增益比

  信息增益准则对可取值数目较多的属性有所偏好,以一个极端例子做说明:如果把每个样本的编号作为特征,那么该特征的信息增益最大。该特征将产生n个分支,每个分支节点只包含一个样本。这样的决策树不具有泛化能力,无法对新样本进行有效预测。可以采用信息增益比进行特征划分。信息增益比定义为:信息增益 g(D,A) g ( D , A ) 与特征A的熵 HA(D) H A ( D ) 之比。 如果特征 A A 的取值比较多,那么通常HA(D)也比较大。可以理解为加入 HA(D) H A ( D ) 惩罚取值较多的特征,作为一种校正方法。定义公式如下:

gR(D,A)=g(D,A)HA(D) g R ( D , A ) = g ( D , A ) H A ( D )

其中 HA(D) H A ( D ) 为:
HA(D)=i=1n|Di||D|log(|Di||D|) H A ( D ) = − ∑ i = 1 n | D i | | D | log ⁡ ( | D i | | D | )

n n 是特征A的类别数, Di D i 是特征 A A 的第i个取值对应的样本个数。 D D 为样本个数。
  [from 周志华《机器学习》]信息增益比对可取值较少的属性有所偏好,C4.5算法并不是直接选择增益率最大的特征划分属性,而是先从候选特征中找到信息增益高于平均水平的属性,再从中选择信息增益比最高的。
  [from Mitchell《机器学习》]特征太多的可能取值必然把训练样例分割成非常小的空间。此时对于训练集,它会有非常高的信息增益。但是对于未见实例它可能是一个非常差的目标函数预测器。(吐槽,这个翻译太生硬)

6、基尼指数

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

Gini(p)=k=1Kpk(1pk) G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k )

  其直观含义为从样本中随机抽取两个样本,不属于同一类的概率。

  如果样本集合特征 D D 根据特征A是否取某一可能值 a a 被分割成D1 D2 D 2 两部分。则在特征 A A 的条件下,集合D的基尼系数定义为:

Gini(D,A)=|D1||D|Gini(D1)+|D2||D|Gini(D2)|D1|D1 G i n i ( D , A ) = | D 1 | | D | G i n i ( D 1 ) + | D 2 | | D | G i n i ( D 2 ) 其 中 | D 1 | 表 示 D 1 部 分 样 本 量 的 大 小

决策树的生成和剪枝

生成

  ID3采用信息增益进行特征选择,而C4.5算法采用信息增益率进行特征选择。细节需要看下paper了。先这么着吧。有空看下《机器学习实战》,用py复现下吧。

ID3算法流程如下所示:

ID3算法流程

C4.5算法流程如下所示:

C4.5算法流程

剪枝

  完全生长的决策树容易造成过拟合的问题,解决这一问题的方法可以分为两类:
  1. 提前停止增长树,在ID3算法完美分类训练数据之前停止生长树,具体:在信息增益小于阈值时,不再分裂,取频数最大的作为叶节点的类别。或者提前设置决策树的深度等
  2. 后修剪法,先允许树过度拟合数据,然后对这个树后修剪,修剪原理类似预剪枝,如果信息增益小于阈值,剪枝即可
  不同的算法貌似剪枝的方法不一样,李航《统计学习方法》中介绍了一种剪枝算法,可以看看。

CART算法

  CART算法根据基尼指数进行特征选择,基尼指数越大说明不确定性越大,所以在某特征条件下,基尼指数越小,特征的区分能力越强。这和条件熵类似,条件熵越小,信息增益越大,特征区分能力越强。
  剪枝算法没有看明白,尴尬。。

CART剪枝

剪枝的内容Pinard的博客写的比较清楚,别人写的博客为什么这么好,自己的,捂脸。

问题总结

  1. 熵的含义,通俗的讲解
  2. 熵的值域,为什么有上下界
  3. 信息增益和信息增益比的差异

优缺点

  • 优点
    • 不需要任何先验假设
    • 解释性高,推理过程可以看成If-Then形式,容易转化成规则
    • 对缺失值不敏感 ,可以处理数值型、字符型数据
    • 没有复杂的参数设置,推理过程完全依赖于属性变量的取值特点
    • 判断属性变量的重要性,为特征选择提供参考
  • 缺点
    • 容易过拟合
    • 对异常值过于敏感
    • 求解时候容易陷入局部最优
    • 如果某些特征的样本比例过大,生成决策树容易偏向于这些特征。这个可以通过调节样本权重来改善

决策树调参

参考Pinard的博客,基于scikit-learn,我只用过R的C50包。
scikit-learn的参数和R的参数有空不好。

Ref

[1] 李航《统计学习方法》
[2] 周志华《机器学习》
[3] 《scikit-learn决策树算法类库使用小结》-Pinard
[4] 《决策树算法原理(下)》-Pinard
[5] 《决策树算法原理(上)》-Pinard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值