机器学习实验二 决策树

一、算法原理

1.决策树(Decision Tree)是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。
2.决策树需要监管学习,监管学习就是给出一堆样本,每个样本都有一组属性和一个分类结果,也就是分类结果已知,那么通过学习这些样本得到一个决策树,这个决策树能够对新的数据给出正确的分类。
3.决策树有两大优点:1)决策树模型可以读性好,具有描述性,有助于人工分析;2)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。

在这里插入图片描述

举个我们上课讲过的,关于女儿和妈妈讨论找对象的例子:在这个例子中,由男方的年龄、长相、收入、是否为公务员这四个条件决定女儿要不要和南方见面。比如说一个男生,他年龄小于30岁,长得不错,收入中等但他是公务员,那女儿就会和他见面。

二、基本步骤

决策树构建的基本步骤如下:

  1. 开始,所有记录看作一个节点
  2. 遍历每个变量的每一种分割方式,找到最好的分割点
  3. 分割成两个节点N1和N2
  4. 对N1和N2分别继续执行2-3步,直到每个节点足够“纯”为止

决策树的变量可以有两种:
1) 数字型(Numeric):变量类型是整数或浮点数,如前面例子中的“年龄”。用“>=”,“>”,“<”或“<=”作为分割条件(排序后,利用已有的分割情况,可以优化分割算法的时间复杂度)。
2) 名称型(Nominal):类似编程语言中的枚举类型,变量只能重有限的选项中选取,比如前面例子中的“是否为公务员”,只能是“是”或“不是”。使用“=”来分割。

那么问题来了,怎么评判一个分割点的好坏?这时候,我们需要设定一个阈值,使得分类后的错误率最小,也就是说使分类结果更“纯”,这个就是学习决策树的关键部分。接下来介绍一下量化纯度的方法~

三、量化纯度

经典的属性划分方法有3种,分别是:
–信息增益: ID 3
–增益率:C 4.5
–基尼指数:CART

1.对于ID3来说,信息熵是度量样本集合纯度最常用的一种指标,这里假设记录被分为n类,每一类的比例P(i)=第i类的数目/总数目,这里直接上个的公式:
在这里插入图片描述

Entropy的值越小,则D的纯度越高;计算信息熵时约定:若p = 0,则p·log2p=0;Entropy的最小值为0,最大值为log2|y|。
接下来再给出信息增益的定义和公式:
在这里插入图片描述-其中,a是离散属性,它有V个可能的取值,用a划分,则会产生V个分支节点,其中第v个分支结点包含了D中所有在属性a上取值为av的样本,记为Dv
-一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。
-但是!!!信息增益对可取值数目较多的属性有所偏好,这里我们在C4.5中引入增益率:

2.对于C4.5来说:
在这里插入图片描述
增益率准则对可取值数目较少的属性有所偏好,C4.5中,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选取增益率最高的。

3.对于CART,我们引入基尼指数。
分类问题中,假设D有K个类,样本点属于第k类的概率为pk, 则概率分布的基尼值定义为:
在这里插入图片描述
-反映了随机抽取两个样本,其类别标记不一致的概率
给定数据集D,属性a的基尼指数定义为:在这里插入图片描述
在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最有划分属性。

四、剪枝处理

剪枝,是为了防止过拟合。有预剪枝和后剪枝两种方法。
通过预留一部分验证集来检验剪枝的效果。

1.预剪枝:通过提前停止树的构建而对树

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值