10、决策树算法

本文详细介绍了决策树算法,包括ID3、C4.5和CART算法的原理和实现过程。从特征选择的角度,讲解了信息增益与信息增益比,以及如何在决策树生成中应用。此外,还探讨了决策树的剪枝策略,以防止过拟合,包括预剪枝和后剪枝的方法。最后提到了CART算法在分类和回归任务中的应用,并提及了sklearn库中的决策树模型参数配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 介绍与定义

  • 输入:训练数据T={ (x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi=(xi(1),xi(2),...,xi(n))x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})xi=(xi(1),xi(2),...,xi(n))nnn是属性个数,yi∈{ 1,2,...,K}y_i\in \{1,2,...,K\}yi{ 1,2,...,K};。
  • 输出:构建决策树模型,正确对实例xxx进行分类。

决策树基于树的结构进行决策,决策树的起始点为根节点,中间决策流程为“内部节点”,分类结果为“叶节点”。

  • “内部结点”:有根结点和中间结点,在某个属性上进行决策;

  • 分支:该测试的可能结果,属性有多少个取值,就有多少个分支;

  • “叶节点”:分类结果。

    在这里插入图片描述

决策树的基本流程

在这里插入图片描述

  1. 首先从开始位置,将所有数据划分到一个节点,即根节点。
  2. 然后经历橙色的两个步骤,橙色的表示判断条件:
    • 若数据为空集,跳出循环。如果该节点是根节点,返回null;如果该节点是中间节点,将该节点标记为训练数据中类别最多的类;
    • 若样本都属于同一类,跳出循环,节点标记为该类别;
  3. 如果经过橙色标记的判断条件都没有跳出循环,则对该节点选择当前条件下的最优属性进行划分。
  4. 经历上步骤划分后,生成新的节点,然后循环判断条件,不断生成新的分支节点,直到所有节点都跳出循环。
  5. 结束,生成一棵决策树。

2 特征选择

特征选择——选择当前条件下的最优属性

2.1 信息增益

在信息论与概率统计中,(entropy) 是表示随机变量不确定性的度量。设 XXX 是一个取有限个值的离散随机变量,其概率分布为
P(X=xi)=pi,i=1,2,...,n P(X=x_i)=p_i,i=1,2,...,n P(X=xi)=pi,i=1,2,...,n
则随机变量 XXX 的熵定义为
H(X)=−∑i=1npilog⁡pi H(X)=-\sum_{i=1}^np_i\log p_i H(X)=i=1npilogpi
由定义可知,熵只依赖于 XXX 的分布,而与 XXX 的取值无关,所以也可将 XXX 的熵记作 H(p)H(p)H(p) ,即
H(p)=−∑i=1npilog⁡pi H(p)=-\sum_{i=1}^np_i\log p_i H(p)=i=1npilogpi
熵越大,随机变量的不确定性就越大。从定义可验证0≤H(p)≤log⁡n0 \leq H(p) \leq \log n0H(p)logn

下图是一个只有2个取值的随机变量,假如取值只有000111,则P(X=0)=p,P(X=1)=1−pP(X=0)=p,P(X=1)=1-pP(X=0)=p,P(X=1)=1p。信息熵为H(p)=−plog⁡p−(1−p)log⁡(1−p)H(p)=-p\log p-(1-p)\log (1-p)H(p)=plogp(1p)log(1p),我们画一个ppp在0-1的变过过程,H(p)H(p)H(p)随着变化的曲线:

在这里插入图片描述

由上图可以看出,当p=0.5p=0.5p=0.5的时候,H(p)H(p)H(p)达到最大值。因为p=0p=0p=0p=1p=1p=1的时候,XXX只有一种可能性,也就是XXX是确定的,因此熵最小,而随着ppp接近0.50.50.5的过程中,变量XXX的不确定性就越来越大,我们计算出来的熵也是越来越大,与实际相符。

信息增益:特征 AAA 对训练数据集 DDD 的信息增益 g(D,A)g(D,A)g(D,A) , 定义为集合 DDD 的经验熵 H(D)H(D)H(D) 与给定条件特征 AAADDD 的经验条件熵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) 之差称为互信息 (mutual information) 。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。

根据信息增益准则的特征选择方法是:对训练数据集(或子集) DDD , 计算其每个特征的信息增益,井比较它们的大小,选择信息增益最大的特征。

设训练数据为DDD∣D∣|D|D 表示其样本容量,即样本个数 。 设有 KKK 个类 CkC_kCkk=1,2,...,Kk =1,2,.. . ,Kk=1,2,...,K , ∣Ck∣|C_k|Ck为属于类 CkC_kCk 的样本个数,∑k=1K∣Ck∣=∣D∣\sum_{k=1}^K |C_k| = |D|k=1KCk=D 。设特征 AAAmmm 个不同的取值 { a1,a2,…,am}\{a_1,a_2,…,a_m\}{ a1,a2,,am},根据特征 AAA 的取值将 DDD 划分为 mmm 个子集 D1,D2,…,DmD_1,D_2,…, D_mD1,D2,,Dm∣Di∣|D_i|DiDiD_iDi 的样本个数,∑i=1m∣Di∣=∣D∣\sum_{i=1}^m |D_i| = |D|i=1mDi=D 。记子集 DiD_iDi 中属于类 CkC_k

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

healed萌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值