决策树挑出好西瓜

本文详细介绍了决策树的原理,包括信息熵、信息增益等关键概念,并通过实例展示了如何用ID3算法构建决策树。同时,文章还探讨了Python中决策树的实现,包括数据处理和模型构建。
摘要由CSDN通过智能技术生成

一:什么是决策树:
  决策树(Decision Tree)及其变种是另一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树分类算法是一种基于实例的归纳学习方法,它能从给定的无序的训练样本中,提炼出树型的分类模型。树中的每个非叶子节点记录了使用哪个特征来进行类别的判断,每个叶子节点则代表了最后判断的类别。根节点到每个叶子节点均形成一条分类的路径规则。而对新的样本进行测试时,只需要从根节点开始,在每个分支节点进行测试,沿着相应的分支递归地进入子树再测试,一直到达叶子节点,该叶子节点所代表的类别即是当前测试样本的预测类别。

   与其它机器学习分类算法相比较,决策树分类算法相对简单,只要训练样本集合能够使用特征向量和类别进行表示,就可以考虑构造决策树分类算法。预测分类算法的复杂度只与决策树的层数有关,是线性的,数据处理效率很高,适合于实时分类的场合。
 主要算法有ID3、C4.5、CART,决策树包含三种类型的节点:

  1. 决策节点:通常用矩形框
  2. 机会节点:通常用圆圈
  3. 终节点:通常用三级形

构建决策树:

信息增益
        决策树学习的关键在于如何选择最优的划分属性,所谓的最优划分属性,对于二元分类而言,就是尽量使划分的样本属于同一类别,即“纯度”最高的属性。那么如何来度量特征(features)的纯度,这时候就要用到“信息熵(information entropy)”。先来看看信息熵的定义:假如当前样本集D中第k类样本所占的比例为, 为类别的总数(对于二元分类来说,)。则样本集的信息熵为:


的值越小,则D的纯度越高。(这个公式也决定了信息增益的一个缺点:即信息增益对可取值数目多的特征有偏好(即该属性能取得值越多,信息增益,越偏向这个),因为特征可取的值越多,会导致“纯度”越大,即ent(D)会很小,如果一个特征的离散个数与样本数相等,那么Ent(D)值会为0)。再来看一个概念信息增益(information gain),假定离散属性  有 个可能的取值,如果使用特征  来对数据集D进行划分,则会产生V个分支结点, 其中第v(小v)个结点包含了数据集D中所有在特征  上取值为 的样本总数,记为。因此可以根据上面信息熵的公式计算出信息熵,再考虑到不同的分支结点所包含的样本数量不同,给分支节点赋予权重,即样本数越多的分支节点的影响越大,因此,能够计算出特征  对样本集D进行划分所获得的“信息增益”:

       一般而言,信息增益越大,则表示使用特征  对数据集划分所获得的“纯度提升”越大。所以信息增益可以用于决策树划分属性的选择,其实就是选择信息增益最大的属性,ID3算法就是采用的信息增益来划分属性。
下面来举个例子说明具体是怎样操作的,只贴公式没多大意义,还是有不利于大家理解。举例子用的数据集为:

 

    显然该数据集包含17个样本,类别为二元的,即。则,正例(类别为1的样本)占的比例为:,反例(类别为0的样本)占的比例为:。根据信息熵的公式能够计算出数据集D的信息熵为:

 

 

从数据集中能够看出特征集为:{色泽、根蒂、敲声、纹理、脐部、触感}。下面我们来计算每个特征的信息增益。先看“色泽”,它有三个可能的离值:{青绿、乌黑、浅白},若使用“色泽”对数据集D进行划分,则可得到3个子集,分别为: (色泽=青绿)、 (色泽=乌黑)、 (色泽=浅白)。 共包含6个样本{1,4,6,10,13,17} ,其中正例占 ,反例占 。 包含6个样本{2,3,7,8,9,15} ,其中正例占 ,反例
占。包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值