决策树(DT)

决策树(Decision Tree)

决策树可用于分类也可用于回归。决策树是一个类似树结构的表示法,每个内部节点表示一个属性的测试,分支表示一个测试的输出,而叶节点就表示类或类的分布。使用训练样本构建决策树时,通常采用自顶向下的递归方式。
对于利用决策树来分类,我觉得“探测”来解释这一过程很合适。对目标样本,不是所有属性一次性就可以决定分类,而是要一步步的。先从一个特征属性的开始判断,如果能直接分类就ok了,如果不行再选一个特征属性再重复上面的判断。如果前几个特征属性可以直接决定类别,别的特征属性的值就会用不上。那么这时就得思考先从哪个特征属性开始?然后是哪个?再后来是哪个?
常用的决策树算法有ID3、C4.5、CART、SLIQ、SPRINT等。
要了解这些算法,先得了解一些基本概念:

  1. 信息熵:
    信息熵可以衡量事物的不确定性,这个事物不确定性越大,信息熵也越大。
    假如事件A的分类划分为 (A1,A2,...,An) ,每部分发生的概率是 (p1,p2,...,pn) ,那么信息熵可这么定义:

    Ent(p1,p2,...,pn)=p1log2p1p2log2p2...pnlog2pn

    那么对于分类来说,数据集类别越多,越不纯,越混乱,则熵越大。反之,熵越小。

    1. 信息增益
      信息增益:在一个条件下,信息不确定性减小的程度。为总的熵减去某个分类标准对应的熵。在决策树分类问题中,就是决策树在进行属性选择划分前和划分后的信息差值。
      设D是样本集合,属性a有v个可能的值 a1,a2,...,aV , Dv 为D中所在属性上取值为 av 的样本。则用属性 a 对样本集D进行划分所得的信息增益为

      Gain(Aa)=Ent(D)v=1VDvDEnt(Dv)

      信息增益越大,意味着使用属性 a 来进行划分所获得的纯度提升越大。所以决策树在属性选择时,就会选择信息增益大的。信息增益准则对可取值数目较多的属性有所偏好。

    2. 增益率

      Grainratio(D,a)=Gain(D,a)IV(a)

      IV(a)=v=1VDvDlog2DvD
      增益率准则对可取值数目较少的属性有所偏好。

    3. 基尼指数
      数据集D的纯度可用基尼值来度量:
      Gini(D)=k=1Yk1kpkpk1=1k=1Yp2k
      基尼值 GiniD 反映了从数据集 D 中随机出去两个样本,其类别标记不一致的概率。GiniD越小, D 的纯度越高。
      属性a的基尼指数为
      Giniindex(D,a)=v=1VDvDGini(Dv)
      决策树在选择时,选择基尼指数最小的属性作为最优划分属性。

    上面我们提到,在构建决策树时,采用的是递归方式。在决策树的基本算法中,递归结束的条件是:程序遍历完所有划分数据集的属性,或者每个分支下的所有实例都具有相同的分类。如果数据集已经处理了所有属性,但是类别标签不是唯一的,此时我们需要决定如何定义该叶子结点,在这种情况下,我们通常会采用多数表决的方法决定该叶子结点的分类。

ID3算法

ID3算法是一种贪心算法,用来构造决策树。以信息熵和信息增益为衡量标准。在划分数据集时,每次划分选取信息增益最高的属性进行划分,重复这个过程,直到生成一个能完美分类训练样例的决策树。

步骤:输入:样本集合S,属性集合A;输出:ID3决策树

(1) 遇到递归终止的条件,返回类别;否则执行(2)

(2) 计算出信息增益最大的属性a,把a作为作为根节点。生成属性集合A1=A-a,执行(3)

(3)对属性a的的每个可能的取值,执行:
1. 将所有属性a的值是v的样本作为S的一个子集Sv;
2. 以样本集合Sv和属性集合A1为输入,递归执行ID3算法。
优点:实现比较简单,产生的规则如果用图表示出来的话,清晰易懂,分类效果好。
缺点:只能处理标称型数据,容易形成过拟合,在选择最佳划分属性时容易选择那些属性值多的一些属性。

C4.5

C4.5算法继承了ID3算法的优点,并在以下几个方面对ID3算法进行了改进:

  1. 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;

  2. 在树构造过程中进行了剪枝,避免了过拟合;

  3. 能够完成对连续属性的离散化处理;

  4. 能够对不完整数据进行处理。

优点:产生的分类规则易于理解,准确率较高。

缺点:在树的构造过程中,需要对数据集进行多次的顺序扫描和排序,耗时。

增益率准则对可取值数目较少的属性有所偏好。因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的,再从中选择增益率最高的。

CART

CART决策树使用“基尼指数”来选择划分属性。数据集D的纯度还可用基尼值来度量:

Gini(D)=k=1nk1kpkpk1=1k=1np2k.

Gini(D) 值越小,代表D的纯度越高。

属性a的基尼指数为

Giniindex(D,a)=v=1VDvDGini(Dv)

基尼指数最小的为最优划分属性。

剪枝是对付过拟合的主要手段。分为预剪枝和后剪枝。 主要当前结点的划分能不能使决策树的性能提升来判断要不要剪枝。

决策树与推荐系统:

在基于内容的推荐算法中,当item的属性是结构化数据时,可对user的训练集构造决策树。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值