第五章--决策树---(5)

1.决策树

(1)决策树模型

  • 是一种描述对实例进行分类的树形结构。由结点(结点:内部结点(表示一个特征或者属性)和叶结点(表示一个分类))和有向边组成。
  • 决策树可以转换成一个if-then规则的集合。
  • 决策树表示给定特征条件下类的条件概率分布。
  • 决策树学习旨在构建一个与训练数据拟合很好,并且复杂度小的决策树。
  • 从可能的决策树中直接选取最优决策树是NP完全问题。
  • 现实中采用启发式方法学习次优的决策树。

(2)特征选择

1)信息增益


随机变量X的熵定义为 H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X)=-\sum_{i=1}^n{p_i}{\log p_i} H(X)=i=1npilogpi,表示随机变量X不确定性的度量。

  • log 以2为底,记作lb,单位比特(bit)
  • log 以e为底,记作ln,单位奈特(nat)
  • log 以10为底,记作lg,单位哈脱来(hat)

条件熵
当随机变量只有两种值时, 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 ( X ) = − p log ⁡ p − ( 1 − p ) log ⁡ ( 1 − p ) H(X)=-p\log p -(1-p)\log(1-p) H(X)=plogp(1p)log(1p)
随机变量 ( X , Y ) (X,Y) (X,Y)的联合概率分布 P ( X = x i , Y = y i ) = p i j P(X=x_i,Y=y_i)=p_{ij} P(X=xi,Y=yi)=pij,则条件熵 H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i) H(YX)=i=1npiH(YX=xi)表示X给定条件下Y的条件概率分布的熵对X的数学期望。


信息增益
定义:特征A对训练集D的信息增益 g ( D , A ) g(D,A) 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)表示:得知特征X的信息而使得类Y的信息的不定性减少的程度。一般的熵H(D)与条件熵H(D|A)之差称为互信息,决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
信息增益依赖于特征,值越大的特征具有更强的分类能力。

2)信息增益比

以信息增益作为划分训练数据集的特征,偏向于选择取值多的特征。信息增益比可以改善这一现象。
定义:信息增益 g ( D , A ) g(D,A) g(D,A)与训练集D关于特征A的值的熵 H A ( D ) H_A(D) HA(D)之比 g R ( D , A ) = g ( D , A ) H A ( D ) = H ( D ) − H ( D ∣ A ) H A ( D ) = − ∑ i = 1 n p i log ⁡ p i − ∑ i = 1 n p i H ( D ∣ A = A i ) − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g ( ∣ D i ∣ ∣ D ∣ ) g_R(D,A)=\frac{g(D,A)}{H_A(D)}=\frac{ H(D)-H(D|A)}{H_A(D)}=\frac{-\sum_{i=1}^n{p_i}{\log p_i}-{\sum_{i=1}^np_iH(D|A=A_i)}}{-\sum_{i=1}^n\frac{|D_i|}{|D|}log(\frac{|D_i|}{|D|})} gR(D,A)=HA(D)g(D,A)=HA(D)H(D)H(DA)=i=1nDDilog(DDi)i=1npilogpii=1npiH(DA=Ai)其中 ∣ D i ∣ {|D_i|} Di表示 D i D_i Di类样本的个数 ∣ D ∣ {|D|} D表示样本总数。

2.决策树生成

(1)ID3算法

1)算法介绍

输入:训练集D,特征集A,阀值 ε \varepsilon ε
输出:决策树T
算法过程:

  • a、判断D中所有实例是否属于同一类 C k C_k Ck, 若是,输出单结点树T,并标记结点类为 C k C_k Ck
  • b、判断A是否为空,若是,输出单结点树T,并将D中实例数最大的 C k C_k Ck作为结点标记;
  • c、计算A中个特征对D的信息增益,选择信息增益最大的特征 A g A_g Ag;
  • d、判断 A g A_g Ag的信息增益 &lt; ε &lt;\varepsilon <ε,如是返回T为单结点树,并将D中实例数最大的 C k C_k Ck作为结点标记;
  • e、若 A g ≥ ε A_g\geq \varepsilon Agε,对 A g A_g Ag的每一个可能值 a i a_i ai将D分成若干非空子集,将实例数最大的类作为标记,构建子结点,返回T;
  • f、对子结点内的训练集,以 A A A-{ A g A_g Ag}作为特征,重复a-e步骤,得到最终的决策树。
2)特点

容易产生过拟合

(2)C4.5的生成算法

1)算法介绍

输入:训练集D,特征集A,阀值 ε \varepsilon ε
输出:决策树T
算法过程:与ID3类似,只是将判断方法信息增益换成了信息增益比

3.决策树剪枝

(1)损失函数

极小化决策树整体的损失函数或代价函数来实现。
损失函数: C α ( T ) = C ( T ) + α ∣ T ∣ = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ = ∑ t = 1 ∣ T ∣ ∑ k = 1 K N t k log ⁡ ( N t k N t ) + α ∣ T ∣ C_{\alpha}(T)=C(T)+\alpha|T|=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T|=\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}\log(\frac{N_{tk}}{N_t})+\alpha|T| Cα(T)=C(T)+αT=t=1TNtHt(T)+αT=t=1Tk=1KNtklog(NtNtk)+αT其中:

  • ∣ T ∣ |T| T表示决策树的叶结点个数,表示模型的复杂度
  • t t t是叶结点,该结点有 N t N_t Nt个样本
  • 其中 k k k类的样本有 N t k N_{tk} Ntk
  • α ≥ 0 \alpha \geq 0 α0,较大的 α \alpha α对应简单的模型,较小的 α \alpha α选择复杂模型, α \alpha α=0表示不考虑模型复杂度
  • C ( T ) C(T) C(T)表示模型对训练数据的预测误差,即模型与训练集的拟合程度

该损失函数的极小化等价于用正则化的极大似然估计进行模型选择

(2)树的剪枝算法

输入:生成算法产生的整个树T,参数 α \alpha α
输出:修剪之后的决策树Tα
过程:计算每个结点的经验熵——>递归的从树的叶结点向上回缩(如父结点之前与之后的树分别为 T A , T B T_A,T_B TA,TB, C α ( T A ) ≤ C α ( T B ) C_{\alpha}(T_A) \leq C_{\alpha}(T_B) Cα(TA)Cα(TB))(重复)——>直至 C α ( T A ) &gt; C α ( T B ) C_{\alpha}(T_A) &gt; C_{\alpha}(T_B) Cα(TA)>Cα(TB)结束剪枝

4. CART算法

1)概述

  • 在规定输入随机变量X条件下输出随机变量Y的条件概率分布;
  • 假设决策树是二叉树,左边是“是”的分支,右边是“否”的分支;
  • 由两步组成:决策树生成和决策树剪枝

2)决策树生成

  • 特征选择使用的方法是:Gini基尼指数 G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\sum_{k=1}^{K}(\frac{|C_{k}|}{|D|})^{2} Gini(D)=1k=1K(DCk)2

  • 输入:训练集D,停止条件

  • 输出:CART决策树

  • 算法过程:计算现有特征对数据集的基尼指数,选择最小基尼指数的特征作为切分点,将数据集切分成两部分,重复切分动作,直至满足条件停止。

3)决策树剪枝

  • 输入:CART算法生成的决策树 T 0 T_0 T0
  • 输出:最优决策树 T α T_\alpha Tα
  • 算法过程:设 k = 0 , T = T 0 , α = + ∞ k=0,T=T_0,\alpha=+\infty k=0,T=T0,α=+,自下而上计算 g ( t ) = C ( t ) − C ( T t ) ∣ T t ∣ − 1 , α = m i n ( α , g ( t ) ) g(t) = \frac{C(t)-C(T_t)}{|T_t|-1},\alpha=min(\alpha,g(t)) g(t)=Tt1C(t)C(Tt),α=min(α,g(t)),对 g ( t ) = α , g(t) = \alpha, g(t)=α,的内部结点t进行剪枝,并对叶结点t以多数表决决定类别,得到数T,循环以上步骤,直至T由根结点和两个叶结点构成,采用交叉验证法对子树序列进行计算,选出最优的树为最终的 T α T_\alpha Tα

5. 决策树的优缺点

1)优点

  • 便于理解和解释,树的结构可以可视化出来;
  • 训练需要的数据少,无需数据规范化;
  • 速度快,训练树模型的时间复杂度是参与训练数据点的对数值;
  • 能够处理数值型数据和分类数据;
  • 使用白盒模型;
  • 可以验证模型可靠性;
  • 大多情况表现良好。

2)缺点

  • 不支持缺失值
  • 决策树模型容易过拟合,通过剪枝、设置叶节点所需的最小样本数或设置数的最大深度避免过拟合。
  • 决策树可能是不稳定的,因为数据中的微小变化可能会导致完全不同的树生成
  • 在多方面性能最优和简单化概念的要求下,学习一棵最优决策树通常是一个NP难问题。实际的决策树学习算法是基于启发式算法,这样的算法不能保证返回全局最优决策树。这个问题可以通过集成学习来训练多棵决策树来缓解,这多棵决策树一般通过对特征和样本有放回的随机采样来生成。
  • 有些概念很难被决策树学习到,因为决策树很难清楚的表述这些概念。例如XOR,奇偶或者复用器的问题。
  • 如某些类在问题中占主导地位会使得创建的决策树有偏差。在拟合前需先对数据集进行平衡。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值