决策树

1、定义

采用“分而治之”的思想对数据进行分类的一种算法,其形式类似于一棵树,由根节点、内部节点、叶子节点三部分组成。

  • 根节点:包含全部的样本,是一个属性测试。
  • 内部节点:包含部分样本,也是一个属性测试。
  • 叶子节点:是最终的决策结果。
    引用

2、目的

产生一颗泛化能力强的决策树:即对测试样本处理能力强的决策树。

3、如何生成策略树

3.1 原则

生成策略树的过程,就是确定各个节点的过程,什么样的节点是最优的节点?

答案是纯度最高的节点:即节点下的样本类别保持一致。

3.2 选择标准

目前策略树常用的选择标准有3个:信息增益、信息增益率、基尼指数。

3.2.1 信息增益

通常使用“熵”来度量样本集合的纯度,“熵”就是物体内部的混乱程度,理论上“熵”的值越小,数据集的“纯度”越高,下面是“熵”的计算公式:
在这里插入图片描述

  • Pk指的是第k类样本所占的比率。

信息增益,指的是测试属性对于样本纯度的增益效果,值越大越好,计算公式为:
在这里插入图片描述

  • 信息增益=样本的熵-所有测试属性熵的和
  • Dv指的是满足某个测试属性的样本集。

选择信息增益最大的属性,作为根节点,然后递归计算最优的节点属性即可组成最优的策略树。ID3算法就是依此实现的。

3.2.2 信息增益率

当样本数据中存在ID类型的数据时,由于每条数据的id都不一样,这样id属性对应的熵值是最小的,即纯度是最高的,信息增益是最大的,但是显而易见以id作为根节点是不合适的,这样就会变成一颗只有2层的“宽”树,不具备泛化的能力:
在这里插入图片描述
为了解决这个问题,提出了信息增益率的概念。
在这里插入图片描述
其中:
在这里插入图片描述
v是属性a的可能取值,v越小则IV(a)越小,信息增益率越大。

C4.5算法就是依据此原理设计的,但是并不直接依赖信息增益率,而是分成两步:

  • 找出信息增益高于平均水平的属性。
  • 找出信息增益率最高的属性。

3.2.3 基尼指数

基尼指数是另一个选择的标准,代表了从样本中任意选择两个样本,类别不一致的概率,所以基尼指数越小,代表样本纯度越高。
在这里插入图片描述
属性a的基尼指数定义为属性a各类样本比率的基尼指数和:
在这里插入图片描述

3.3 剪枝处理

构建决策树的过程中,如果完全按照训练集进行分支节点的构建,会使决策树与训练集过拟合,无法支持真实数据的要求,而且由于分支节点过多,还会增大训练和测试的时间开销。为了解决这个问题,需要对决策树进行剪枝处理。

是否裁剪,可以依据裁剪前后的精确度来判断。

3.3.1 预剪枝

在生成决策树的过程中,判断每个节点是否需要划分。判断的标准是增加该节点后是否能提升精度。

优点
- 降低过拟合的风险。
- 降低训练时间和测试时间开销。

缺点:有这种风险,该节点降低了精度,但是子节点可以提升精度,在预剪枝中会丢失。

3.3.2 后剪枝

先生成决策树,然后从底到根对决策树的节点进行裁剪。判断的标准是减少该节点后是否能提升精度。

优点
- 降低欠拟合的风险。所谓过拟合(over-fitting)就是所建的模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳;欠拟合则相反,模型在训练集上表现都非常差。
-泛化性能往往优于预剪枝。

缺点:后剪枝需要首先形成一颗完整的树,再从底到根进行判定,会增加训练和测试的开销。

3.4 数据预处理

3.4.1 连续值

连续值的取值范围没有限制,需要转换为离散值才能进行分类任务,一般采用2分法:取一个中间值,小于中间值的为分类a,大于中间值的为分类b。

与离散值不同的是,连续值的属性,可以在子节点中多次使用。

3.4.2 缺失值

缺失值的处理方式,是把包含缺失值的样本,拷贝到各个分类中,只是权重为1/n,n为分类的数目。

后面的计算方式就一样了,计算每个节点的信息增益,判断是否需要划分节点。

参考文档

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值