机器学习(二):决策树

本文深入探讨了决策树学习,包括基本概念、决策树学习的划分选择(信息增益与信息增益比)、ID3与C4.5算法、剪枝处理以及CART算法。通过理解决策树的生成和优化,有助于更好地应用决策树进行非线性分类。
摘要由CSDN通过智能技术生成

决策树学习

本文内容参考周志华机器学习,李航统计学习,python机器学习实践整理而来:


1、基本概念

  • 以前接触的感知机,逻辑回归和LinearSVM等分类器都是要求被学习的数据特征和目标之间存在线性关系,也就是 w1x1+w2x2...+wnxn 与类别 yi 可以计算出某种线性映射,然而现实生活中,很多数据(如根据一个人的年龄,体重等特征来预测流感死亡率)并不能找到这样一种线性关系,反而将数据集切分成很多份子数据时,通过分段子数据之间的组合来进行预测分类(如,年龄越大,体重越高,流感死亡率就会高)会更加合理,这样的方法就是决策树。决策树是一种贪心算法,它要在给定时间内做出最佳选择,但是并不关心能否达到全局最优。

  • 决策树模型是一种对样本进行非线性分类的树形结构。简单来说决策树算法就是通过对已有明确结果的历史数据进行分析,寻找数据中的特征,并以此为依据对新产生的数据结果进行预测。其由结点(node)和有向边(directed edge)组成。一般的,一颗决策树包含一个根节点,多个内部结点和多个叶节点。内部结点表示一个特征和属性,叶节点表示一个类。
    决策过程从上到下

  • 决策树表示给定特征条件下类的条件概率分布。假设 X 为表示特征的随机变量, Y 为表示类的随机变量,那么这个条件概率分布可以表示为 P(Y|X) 。其中 X 取值于划分的特征集合, Y 取值于类的集合。各叶结点上的条件概率往往会偏向某一个类,即属于某一类的概率较大。决策树分类时将该结点的实例强行分到概率大的那一类去。
    那么怎么确定这样一个条件概率呢??下面我们将来介绍决策树的划分选择,即它如何选择一组特征作为树的内部结点。

2、决策树学习

决策树实际上是从训练数据中归纳出一组分类规则,使得不仅拟合训练数据,还有很好的泛化能力。决策树学习的算法通常是递归的选择最优特征,并根据该特征对训练数据进行划分,构建决策树。

2.1 划分选择

直观上,如果一个特征具有更好的分类能力,或者说,按照这一特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就应该选择这个特征。通常特征选择的准则是信息增益或信息增益比。

  • 熵(entropy)
    在信息论与概率统计中,熵是表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为:

    P(X=xi)=pi,i=1,2,,n

    那么随机变量的熵定义是:
    H(X)=i=1npilogpi

    上式中,若对数底为2,则熵单位为比特,若底为e,则熵单位为纳特。因为熵只依赖于X的分布,而与X的取值无关,所以也可将熵记为:
    H(p)=i=1npilogpi,0H(p)logn

    熵越大,随机变量的不确定性就越大。

  • 条件熵(conditional entropy)
    条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。则在随机变量X给定的条件下,随机变量Y的条件熵H(Y|X)定义为:

    H(Y|X)=i=1npiH(Y|X=xi)pi=P(X=xi),i=1,2n.

    当熵和条件熵中的概率p_i是由数据估计得到时,所对应的熵和条件熵分别称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。一般的,称熵与条件熵之差为互信息。

  • 2.1.1 信息增益
    信息增益表示得知特征X的信息而使得类Y的信息不确定性减少。
    假定离散特征a有V个可能的值 a1,a2aV, ,如周志华机器学习中的西瓜数据集,特征集合A有[色泽,根蒂,敲声,纹理…],现假定离散特征a为色泽,则V(此时值为3)个可能的值为{青绿,乌黑,浅白}。若使用a来对样本集D进行划分,则会有V个分支结点,其中第v个分支结点包含了D中所有在特征a上取值为 av 的样本,记为 Dv
    考虑到不同的分支结点所包含的样本数不同,所以这里将 pi=|Dv|/|D| ,于是可计算出用特征a对样本集D进行划分的所获得的信息增益为:

    G(D,a)=H(D)H(D|a)=H(D)v=1V|Dv||D|H(Dv)

    可以看出:决策树中的信息增益等于训练数据集中类与特征的互信息。显然,对于数据集D来说,信息增益依赖于特征,不同特征往往具有不同的增益,信息增益大的特征具有更强的分类能力(条件经验熵越小,该特征下的分类不确定性越小)。
    根据信息增益选择特征的算法[1]为:
    输入:训练数据集D和特征a;
    输出:特征a对训练数据集D 的信息增益G(D,a)。
    (1) 计算数据集D的经验熵H(D)。K为要分的类别个数, Ck 为训练样本中第k个类别的数量,D为总的训练样本数。
    H(D)=k=1K|Ck||D|log2|Ck||D|

    (2) 计算特征a对数据集D的经验条件熵H(D|a)。 Dvk Dv 中第k个类别的数量。
    H(D|a)=v=1V|Dv||D|H(Di)=v=1V|Dv||D|k=1K
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值