《统计学习方法》:第五章:决策树

本文详细介绍了决策树的学习过程,包括决策树模型、特征选择、决策树的生成与剪枝,以及常用的算法如ID3、C4.5和CART。通过信息增益和信息增益比选择最优特征,利用递归方式构建决策树,并通过剪枝避免过拟合,提高泛化能力。CART算法特别强调生成二叉树,并用基尼指数进行特征选择。
摘要由CSDN通过智能技术生成

一、决策树模型与学习:

1、决策树模型:

  • 决策树:决策树由节点有向边组成,节点有两种类型:一种是内部节点,其表示一个特征或属性,一种是叶节点表示一个类别。

2、决策树与条件概率分布:

  • 决策树可以表示为:给定特征条件下类的条件概率分布;这一条件概率分布定义在特征空间的一个划分上;这个划分将特征空间划分为互不相交的单元,并且在每个单元上定义一个类的概率分布这个类的概率分布其实质就是在这个单元中的样本属于某一类的概率,可以理解为一个长度为类个数的列表,列表中的元素就是该单元中的样本属于某一类的概率,这个概率一般是通过统计训练样本得到;每个单元的类的概率分布就构成了决策树所表示的条件概率分布
  • 决策树中的每条路径对应于划分中的一个单元。即决策树的每个叶节点对应于一个单元
  • 假设 X X X为表示特征向量的随机变量, Y Y Y表示类的随机变量,条件概率分布可以表示为 P ( Y ∣ X ) P(Y|X) P(YX) X X X取值为给定划分下单元的集合(实质上 X X X的取值应该是某个样本,但样本一定是落在某个单元中的,而每个单元类的概率分布是一样的,所以可以理解为 X X X的取值为某个划分单元) Y Y Y取值为类的集合。
  • 各叶结点(单元)往往偏向某一个类, 即属于概率较大的某一类。 决策树分类时将该叶结点(单元)的实例强行分到条件概率大的那一类中去。
  • 上面的描述可能有点抽象小面用一个列子来解释一下:
    图1是一个划分,图2是一个概率分布,图3是决策树,他们的对应关系我用红色数字标出来了;从图2我们可以看出:单元1全是+1的样本,单元2全是-1的样本,单元3全是-1的样本数多于+1的样本数,单元4全是+1的样本数多于-1的样本数。

3、决策树的学习:

  • 假设训练集为: D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } D=\{(x_1,y_1 ),(x_2,y_2 ),…,(x_N,y_N )\} D={ (x1,y1),(x2,y2),,(xN,yN)}其中 x i = ( x i 1 , x i 2 , … , x i n ) , y = { 1 , 2 , … , K } x_i=(x_i^1,x_i^2,…,x_i^n ),y=\{1,2,…,K\} xi=(xi1,xi2,,xin),y={ 1,2,,K}
  • 决策树学习本质上是从训练数据集中归纳出一组分类规则。与训练集不相矛盾的决策树可能有多个,我们需要的是一个于训练集矛盾较小同时又有很好的泛化能力的决策树。
  • 总统思路:
    • 决策树学习的算法通常是一个递归地选择最优特征的过程,并根据该最优特征对训练数据进行分割,使得分割得到的子集数据集有一个最好的分类。这一过程对应着对特征空间的划分,也对应着决策树的构建。
  • 过程:
    • 开始,构建根结点,将所有训练数据都放在根结点。选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。
    • 然后递归向下处理子集:
      • 如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集分到所对应的叶结点中去;
      • 如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的结点。如此递归地进行下去,直至所有训练数据子集被基本正确分类,或者没有合适的特征为止。
    • 最后每个子集都被分到叶结点上,即都有了明确的类。这就生成了一棵决策树
  • 剪枝:
    • 以上方法生成的决策树可能会发生过拟合的现象。
    • 这时我们需要对已生成的树自下而上进行剪枝,将树变得更简单,从而使它具有更好的泛化能力。
    • 具体说就是:去掉过于细分的叶结点,使其回退到父结点,甚至更高的结点,然后将父结点或更高的结点改为新的叶结点。
  • 决策树学习算法主要包含:特征选择决策树的生成决策树的剪枝
  • 决策树学习常用的算法有:ID3、C45与CART

二、特征选择:

  • 在上面决策树的学习过程中需要选择一个最优的特征;那么什么是最优特征?怎样选择最优特征?
  • 最优特征指的是对训练数据具有分类能力的特征。如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是没有分类能力的。经验上扔掉这样的特征对决策树学习的精度影响不大。
  • 通常选择最优特征的准则信息增益信息增益比

1、信息增益:

  • 熵(entropy):

    • 在信息论与概率统计中, 是表示随机变量不确定性的度量.
    • X X X是一个取有限个值的离散随机变量,其概率分布为: P ( X = x i ) = p i ; i = 1 , 2 , , n P(X=x_i )=p_i; i=1,2,,n P(X=xi)=pi;i=12n则随机变量 X X X定义为: H ( X ) = − ∑ i n p i l o g ⁡ p i H(X)=-∑_i^np_i log⁡p_i H(X)=inpilogpi 其中规定 0 l o g 0 = 0 0log0=0 0log0=0 l o g log log的底可以是 2 2 2 e e e对应的熵的单位是比特(bit)纳特(nat)
    • 熵越大随机变量的不确定性就越大。
    • 当随机变量只取两个值:1,0时,即 X X X的分布为: P ( X = 1 ) = p , P ( X = 0 ) = 1 − p , 0 ≤ p ≤ 1 P(X=1)=p,P(X=0)=1-p,0≤p≤1 P(X=1)=pP(X=0)=1p0p1熵的公式如下: H ( p ) = − p l o g 2 p − ( 1 − p ) l o g 2 ⁡ ( 1 − p ) H(p)=-plog_2 p-(1-p) log_2⁡(1-p) H(p)=plog2p(1p)log2(1p)变化图如下:
    • p = 0 p=0 p=0 p = 1 p=1 p=1 H ( p ) = 0 H(p)=0 H(p)=0,随机变量完全没有不确定性.当 p = 0.5 p=0.5 p=0.5时, H ( p ) = 1 H(p)=1 H(p)=1,熵取值最大,随机变量不确定性最大.
  • 条件熵(conditional entropy):

    • 设有随机变量 ( X , y ) (X,y) (Xy),其联合概率分布为: P ( X = x i , Y = y j ) = P i j , i = 1 , 2 , … , n ; j = 1 , 2 , … , m P(X=x_i,Y=y_j )=P_{ij},i=1,2,…,n;j=1,2,…,m P(X=xi,Y=yj)=Piji=1,2,,nj=1,2,,m
    • 条件熵 H ( Y ∣ X ) H(Y|X) H(YX)表示在己知随机变量 X X X的条件下随机变量 Y Y Y的不确定性.定义为 X X X给定条件下 Y Y Y的条件概率分布的熵对 X X X的数学期望: H ( Y │ X ) = ∑ i = 1 n p i H ( Y │ X = x i ) H(Y│X)=∑_{i=1}^np_i H(Y│X=x_i ) H(YX)=i=1npiH(YX=xi)这里: p i = P ( X = x i ) , i = 1 , 2 , … , n p_i=P(X=x_i ),i=1,2,…,n pi=P(X=xi)i=1,2,,n.
  • 当熵和条件熵公式中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵和经验条件熵

  • 信息增益(information gain):

    • 信息增益:表示得知特征 X X X的信息而使得类 Y Y Y的信息的不确定性减少的程度.
    • 特征 A A A对训练数据集 D D D的信息增益 g ( D , A ) g(D,A) g(D,A),定义为集合 D D D的经验熵 H ( D ) H(D) H(D)与特征 A A A给定条件下 D D D的经验条件熵 H ( D ∣ A ) H(D|A) H(DA)之差,即: g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
    • H ( Y ) H(Y) H(Y)与条件熵 H ( Y ∣ X ) H(Y|X) H(YX) 之差称为互信息.决策树学习中的信息增益等价于训练数据集中类与特征的互信息.
  • 信息增益算法:

    • 设训练数据集为 D D D ∣ ∣ || 表示样本个数。类别为: C k , k = 1 , 2 , … , K C_k,k=1,2,…,K Ckk=1,2,,K ∣ C k ∣ |C_k| Ck表示属于 C k C_k Ck的样本个数.设特征 A A A n n n个不同的取值 a 1 , a 2 , … , a n {a_1,a_2,…,a_n} a1,a2,,an,根据特征 A A A的取值将 D D D划分为 n n n个子集 D 1 , D 2 , … , D n D_1,D_2,…,D_n D1,D2,,Dn。记子集 D i D_i Di,中属于类 C k C_k Ck,的样本的集合为 D i k D_{ik} Dik
    • 输入:训练数据集 D D D和特征 A A A
    • 输出:特征 A A A对训练集 D D D的信息增益 g ( D , A ) g(D,A) g(D,A)
    • 第一步:计算数据集 D D D的经验熵 H ( D ) H(D) H(D): H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ l o g 2 ⁡ ∣ C k ∣ ∣ D ∣ H(D)=-∑_{k=1}^K\frac{|C_k |}{|D|} log_2⁡\frac{|C_k |}{|D|} H(D)=k=1KDCklog2DCk
    • 第二步:计算特征 A A A对数据集 D D D的经验条件熵 H ( D ∣ A ) H(D|A) H(DA): H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ C i k ∣ ∣ D i ∣ l o g 2 ⁡ ∣ C i k ∣ ∣ D i ∣ H(D|A)=∑_{i=1}^n\frac{|D_i |}{|D|} H(D_i)=-∑_{i=1}^n\frac{|D_i |}{|D|} ∑_{k=1}^K\frac{|C_{ik} |}{|D_i |} log_2\frac{⁡|C_{ik} |}{|D_i |} H(DA)=i=1nDD</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值