机器学习笔记(二) 决策树

本文深入探讨了决策树的构建,包括信息熵、信息增益、ID3、C4.5和CART算法。此外,还介绍了决策树的剪枝策略(预剪枝和后剪枝)以及缺失值处理方法,旨在理解和解决过拟合问题。
摘要由CSDN通过智能技术生成

零、摘要

本文讨论决策树的构建、最佳划分的选择、剪枝处理以及缺失值处理。

主要参考资料:

一、构建决策树

本文引用周志华《机器学习》中西瓜的例子。
假设你是河海大学大四老阿姨,有整整三的在教育超市的买西瓜经验,阅瓜无数,积累了一个数据集,包括买过的西瓜的各种特性(色泽、根蒂、敲声、纹理等等)以及吃瓜后这个瓜是否是好瓜的判断。

这里写图片描述
现在,你要教急缺买瓜经验的大一萌新陈德龙如何在超市选出好瓜。
作为前辈的你,是一个经验丰富的买瓜老手,挑瓜时有独到的套路:
比如说,首先看瓜的色泽,如果是青绿色的,就观察它的根蒂,如果根蒂是蜷缩着的,就轻敲西瓜听声音,如果是浊响,非常好,这是一个好瓜。

这就是决策树的基本思想。
但是显然在刚才的判断过程中,色泽不只有青绿色一种,其他颜色的瓜中也有好瓜的存在。另外一方面,对于一个瓜,怎样知道先判断色泽更好还是先判断根蒂更好呢?这就是寻找最优划分属性的问题。这一问题我们将在下一部分里讲述,而接下来,我们来试图用伪代码构建一棵决策树。

函数 生成决策树(训练集、属性集):

    如果(训练集中的样本都属于同一类别):#比如:都是好瓜return 这一类别的标签;

    如果(训练集中样本在属性集上的取值相同):#比如:属性集包含色泽和根蒂,训练集中的瓜色泽和根蒂都相同return 最多类别的标签; #比如:这些色泽和根蒂都相同的瓜里面好瓜占多数,则返回好瓜。

    上面两个条件都不满足,则寻找最优化分属性a# 比如:找到属性——敲声
    根据属性a划分训练集,得到几个训练子集。

    循环,对于a中每一个值ai: #比如:a1=浊响, a2=沉闷, a3=清脆
        生成决策树(ai的训练子集、属性集/a

上面,训练集相当于高维坐标中的点(x,y)。其中x是一个向量,分量xi是这个瓜在第i个属性上的取值,y代表是不是好瓜。属性集包括买瓜时要考虑的各个因素:色泽、根蒂、敲声、纹理等等。

我们看到,这是一个递归函数,他在前两个“如果”中各有一个停止条件,在最后一行递归地调用自己。

接下来,我们就要讨论,代码中部“寻找最优化分属性”这一步是如何进行的。

二、寻找最优划分属性

1.信息、信息熵和信息增益

首先,如果一件事情有i种可能的结果,每种结果 xi x i 发生的概率为 p(xi) p ( x i ) ,则要确定这件事的结果为 xi x i 所需的信息为 I(xi)=log2p(xi) I ( x i ) = − l o g 2 p ( x i )
我们来理解一下这个公式。针对抛硬币这个事件,一共有两个结果 x1 x 1 =正面 和 x2 x 2 =反面 。他们各自的概率 p(x1)=p(x2)=0.5 p ( x 1 ) = p ( x 2 ) = 0.5 。带入上面的公式中,得到:

确定抛硬币结果所需的信息 = I(xi)=log2p(xi)=log2(0.5)=1(bit) I ( x i ) = − l o g 2 p ( x i ) = − l o g 2 ( 0.5 ) = 1 ( b i t ) , 即,我们需要1比特的信息来知道抛硬币得到的是正面还是反面。我们知道,1比特代表1或0,所以这信息的定义也是符合我们的直观感受的。
之所以这里的信息单位为比特,是因为我们在上面的式子里用了以2为底取对数。如果是 logep(xi) l o g e p ( x i ) lnp(xi) l n p ( x i ) ,那信息的单位就是nat;如果是以10为底的 lgp(xi) l g p ( x i ) ,那单位就是Hart。在本文中,我们使用以2为底取对数。

接下来我们要讨论信息熵的概念。在1948年,香农将热力学的熵(entropy)引入到信息论,因此信息熵又被称为香农熵。有趣的是,最开始当香农写完信息论时,实际上是冯诺依曼对香农建议用“熵”这个术语,因为大家都不知道香农说的是什么意思

我们可以这样理解:信息熵是度量一个集合中,样本混乱度的一种指标。越复杂,信息熵的值越大。
信息熵的定义为

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值