Day03-《西瓜书》-决策树(DataWhale)

本文介绍了决策树的基本流程和算法,包括信息熵、信息增益、ID3、C4.5和CART算法。其中,ID3使用信息增益选择特征,C4.5引入信息增益比解决偏向取值多的特征问题,CART使用基尼系数。此外,还讨论了决策树在处理连续特征、缺失值以及过拟合等方面的问题和解决方案。
摘要由CSDN通过智能技术生成

四、决策树

(decision tree)

4.1 基本流程

决策树

  • 是通过一系列规则对数据进行分类的过程。
  • 决策树表示给定特征条件下类的条件概率分布

决策树组成

在这里插入图片描述

  • 内部结点(internal node):表示一个特征或属性
  • 叶结点(leaf node):一个类别或某个值

决策树生成步骤

  • 特征选择
  • 决策树生成
  • 决策树的修剪

4.2 决策树算法

4.2.1 基础知识

信息熵

自信息
I ( X ) = − l o g b p ( x ) I(X) = -log_bp(x) I(X)=logbp(x)
熵的理论解释

(1)信息熵(自信息的期望)

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=1,2,...,n)
随机变量X的熵定义为:
H ( X ) = − ∑ i = 1 n p i l o g p i H(X) = -\sum_{i=1}^np_ilogp_i H(X)=i=1npilogpi
l o g log log l o g 2 log_2 log2时,熵的单位为比特(bit)

l o g log log l o g e log_e loge时,熵的单位为纳特(nat)

熵只依赖于X的分布,与X无关,则:
H ( p ) = − ∑ i = 1 n p i l o g p i H(p) = -\sum_{i=1}^np_ilogp_i H(p)=i=1npilogpi
熵越大,随机变量的不确定性越大: n ≤ H ( p ) ≤ l o g n n\leq H(p)\leq log_n nH(p)logn

约定:若 p ( x ) = 0 p(x)=0 p(x)=0,则 p i l o g p i = 0 p_ilogp_i=0 pilogpi=0,当X的某个取值的概率为1时信息熵最小(最确定);当X的各个取值的概率均等时信息熵最大(最不确定),其值为 l o g ∣ X ∣ , ∣ X ∣ log|X|,|X| logX,X表示X取值的个数

举例

当X服从0~1分布: P ( X = 1 ) = p ; P ( X = 0 ) = 1 − p P(X=1)=p; P(X=0)=1-p P(X=1)=p;P(X=0)=1p

熵为: H ( p ) = − p l o g 2 p − ( 1 − p ) l o g 2 ( 1 − p ) H(p)=-plog_2p-(1-p)log_2(1-p) H(p)=plog2p(1p)log2(1p)

(2)条件熵

联合概率分布为: P ( X = x i , Y = y j ) = p i j , i = 1 , 2 , . . . , n ; j = 1 , 2 , 3 , . . . , m P(X=x_i,Y=y_j)=p_{ij},i=1,2,...,n;j=1,2,3,...,m P(X=xi,Y=yj)=piji=1,2,...,n;j=1,2,3,...,m

条件熵 H ( Y ∣ X ) H(Y|X) H(YX):表示在已知随机变量X的条件下随机变量Y的不确定性,定义为X给定条件下Y的条件概率分布的熵对X的数学期望:
H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X) = \sum_{i=1}^n p_iH(Y|X=x_i) H(YX)=i=1npiH(YX=xi)
【当熵和条件熵中的概率由数据估计,特别是极大似然估计,得到所对应的熵与条件熵分别称为经验熵(empirical entropy) 和经验条件熵(empirical conditional entropy)】

信息增益

信息增益:特征A对训练数据集D的信息增益,g(D,A)定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)

  • 互信息(mutual information):表示得知特征X的信息而使得类Y的信息的不确定性减少的程度
  • 机器学习中的信息增益等价于训练数据集中类与特征的互信息
  • 信息增益越大,意味着使用该属性来进行划分所获得的==“纯度提升越大”==

算法

设训练数据集为D,|D| 表示样本数量,

设有K个类 C k , k = 1 , 2 , . . . , K C_k,k=1,2,...,K Ck,k=1,2,...,K,| C k C_k Ck|为所属类 C k C_k Ck的样本个数

特征A有n个不同的取值 { a 1 , a 2 , . . . a n } \{a_1, a_2,...a_n\} { a1,a2,...an}

根据A的取值将D划分为n个子集 { D 1 , , D 2 , . . . , D n } \{D_1,,D_2,...,D_n\} { D1,,D2,...,Dn}。| D i D_i Di|为 D i D_i Di的样本数量

子集 D i D_i Di中属于类 C k C_k Ck的样本集合为 D i k D_{ik} Dik,| D i k D_{ik} Dik|为 D i k D_{ik} Dik的样本个数

  • 输入:训练集D 和特征A

    • 计算D的经验熵H(D)
      E n t ( D ) = H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ Ent(D)=H(D) = -\sum_{k=1}^K\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|} Ent(D)=H(D)=k=1KDCklog2DCk

    • 计算特征A对D的经验条件熵H(D|A)
      H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) H(D|A) = \sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i) H(DA)=i=1nDDiH(Di)

    • 计算信息增益
      G a i n ( D , A ) = g ( D , A ) = H ( D ) − H ( D ∣ A ) Gain(D,A)=g(D,A) = H(D)-H(D|A) Gain(D,A)=g(D,A)=H(D)H(DA)

流程:

  • 决定分类属性
  • 建立一个结点N
  • 如果数据都属于同一类,N就是树叶,在树叶上标出所属的类;如果没有其他属性可以考虑,N也是树叶,按照少数服从多数的原则标出所属的类别
  • 否则,根据条件熵或信息增益选择最佳属性作为结点N的测试属性
  • 结点属性选定后,对于该属性中的每一个值建立子树
信息增益比(增益率)

修正信息增益偏向于选择取值较多的特征的问题

定义:信息增益与训练数据集D关于特征A的值的熵之比
g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A) = \frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值