算法学习笔记(三):决策树学习

一、信息论基础

  1. 熵(信息熵):衡量不确定性的程度。熵值越大,不确定程度越大,也就是说明所含信息越多;相反,熵值越小,不确定程度越小,也就是说明所含信息越小;在决策树的应用中,熵用来衡量样本的纯度,熵越小,样本越纯,表明分类的效果越好。
    其公式如下:
    H ( X ) = − ∑ k = 1 m p k l n p k H(X)=-\sum_{k=1}^mp_klnp_k H(X)=k=1mpklnpk
    其中, p k p_k pk表示该类样本占总样本的比例,这里当作了概率来使用。k表示样本的类别个数,m表示一共有m类样本。

  2. 联合熵:衡量随机变量X、Y在一起时的不确定性。
    其公式如下:
    H ( X , Y ) = − ∑ x , y p ( x , y ) l n p ( x , y ) H(X,Y)=-\sum_{x,y}p(x,y)lnp(x,y) H(X,Y)=x,yp(x,y)lnp(x,y)
    暂时还不知道在决策树中有什么应用。

  3. 条件熵:在随机变量X确定的前提下,衡量Y的不确定性
    其公式如下:
    H ( Y ∣ X ) = H ( X , Y ) − H ( X ) = − ∑ x , y p ( x , y ) l n p ( y ∣ x ) H(Y|X)=H(X,Y)-H(X)=-\sum_{x,y}p(x,y)lnp(y|x) H(YX)=H(X,Y)H(X)=x,yp(x,y)lnp(yx)
    同样也不太清楚条件熵在决策树中有什么应用,可能是太菜emmmm

  4. 信息增益:是指未进行过分类的原样本的信息熵与通过某一属性对原样本划分后所得的信息熵的差值。一般而言,信息增益越大,意味着使用这种属性来进行划分所获得的“纯度提升”越大。
    其公式如下:
    G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
    其中,v是某种属性的值的编号,V是该种属性的值的数量, D v D^v Dv是指原样本经过该种属性划分后落入v属性值的样本集合, E n t ( D ) Ent(D) Ent(D)是指样本的信息熵。

  5. 基尼不纯度:在西瓜书和李航统计学中也叫基尼指数(Gini Index),直观来说,基尼指数反映了从数据集中随机抽取两个样本,其类别标记不一致的概率,因此,基尼指数越小,数据集的纯度越高。
    其公式如下:
    G i n i ( D ) = ∑ k = 1 m ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 m p k 2 Gini(D)=\sum_{k=1}^{m}\sum_{k' \ne k} p_kp_{k'}=1-\sum_{k=1}^{m}p_k^2 Gini(D)=k=1mk̸=kpkpk=1k=1mpk2

二、决策树的不同算法(ID3,C4.5,CART)

  1. ID3算法
    ID3算法是使用信息增益来进行决策树的属性的划分。假如有数据集D,其有 A = { a 1 , a 2 , . . . , a n } A=\{a^1,a^2,...,a^n\} A={a1,a2,...,an}种属性,根据信息增益准则,我们要选择信息增益最大的那个属性作为最优属性,并根据其属性值来生成子树,并将原样本按照属性值拆分到各属性值的样本集中,接着根据递归上面的步骤,直到样本集中没有样本或者属性集中没有属性为止。
    即依照如下公式进行最优属性的筛选:
    a ∗ = a r g m a x a G a i n ( D , a ) a^*=argmax_{a} Gain(D,a) a=argmaxaGain(D,a)

  2. C4.5算法
    C4.5算法和ID3算法基本相似,ID3算法使用的是信息增益准则作为属性划分的依据,但是由于ID3算法对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,C4.5算法诞生了,C4.5使用了增益率来选择最优划分属性。
    增益率的定义如下:
    G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} Gainratio(D,a)=IV(a)Gain(D,a)
    其中
    I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|} IV(a)=v=1VDDvlog2DDv
    不过,增益率准则对可取值数目较少的属性有所偏好,所以C4.5算法并不是直接选择增益率最大的候选划分属性,而是先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

  3. CART算法
    CART算法使用基尼指数来选择划分属性。
    属性a的基尼指数定义为:
    G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\_index(D,a)=\sum_{v=1}^{V}\frac{|D^v|}{|D|}Gini(D^v) Gini_index(D,a)=v=1VDDvGini(Dv)
    然后,在候选属性集合中选择那个使得划分后基尼指数最小的属性作为最优划分属性,即
    a ∗ = a r g m i n a G i n i _ i n d e x ( D , a ) a_*=argmin_a\quad Gini\_index(D,a) a=argminaGini_index(D,a)

回归树

  上面简单介绍了一下决策树的三大算法,其都能实现分类的功能,至于什么时候用哪个算法,这还得需要自己去摸索(其实我自己也不太会)。但是决策树不仅仅可以用来实现分类的功能,它其实还可以实现回归的功能。下面简单的讲讲:
  分类树是针对目标变量是离散型变量,通过二叉树将数据进行分割成离散类的方法。而回归树则是针对目标变量是连续性的变量,通过选取最优分割特征的某个值,然后数据根据大于或者小于这个值进行划分进行树分裂最终生成回归树。
  在使用决策树解决回归问题中我们需要不断的选取某一特征的一个值作为分割点来生成子树。选取的标准就是使得被分割的两部分数据能有最好的纯度。对于连续性变量我们通过计算最小平方残差,也就是选择使得分割后数据方差变得最小的特征和分割点。直观的理解就是使得分割的两部分数据能够有最相近的值。

决策树防止过拟合方法

剪枝操作是决策树对付过拟合的主要手段,基本策略有“预剪枝”和“后剪枝”。在决策树生成的过程中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时候就会造成决策树分支过多,这时候就会导致过拟合,因此就需要去掉一些分支来降低过拟合的风险。预剪枝是在决策树生成的过程中对每个结点划分前后的准确率进行比较,若划分不能带来泛化性能的明显提高,则停止该结点的划分并将该节点标记为叶子节点;后剪枝是先从训练集中生成一颗完整的决策树,然后自底向上对非叶子节点的泛化能力进行考察,操作和预剪枝类似。

模型评估

由于决策树算法是分类算法,因此,模型的评估可以先使用交叉验证、留出法、自助法将数据集划分为训练集和测试集,然后再使用分类算法常用的评估指标,如准确率,召回率等来计算即可。

参考资料

  1. 机器学习之分类与回归树(CART)
  2. 机器学习算法实践-树回归
  3. 西瓜书.周志华
  4. 李航统计学习方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值