决策树

决策树

一、原理

决策树主要是通过已有数据建立决策树,然后根据建立的决策树来进行预测分析。
这就关系到如何建立决策树。选择一个属性,对该属性进行分类可产生子节点。以此进行循环就可产生决策树。就像数据:

[[1,1,‘yes’],
[1,1,‘yes’],
[1,0,‘no’],
[0,1,‘no’],
[0,1,‘no’]]

对第一个属性可以进行分为1和0两个类,将全部第一属性为1的数据作为一个子节点,全部为0的数据作为第二个子节点。然后再以此类推,对子节点的第二个属性进行分类,注意此时的子节点是相互独立的。第一个子节点为:

[[1,1,‘yes’],
[1,1,‘yes’],
[1,0,‘no’]]

对其进行划分子节点时,是对第二个属性划分。将该节点中的第二属性为1的全部数据作为一个子节点,为0的作为一个子节点。另外一个第二层的节点的划分也是类似的。
这样这颗简单的决策树就建立了。
在决策树的建立中还有一些问题,这些问题是在这个简单的数据集中可能看不出来的。比如:该首先选择哪个属性进行划分、划分到什么时候停止。还有此数据是一个二值类数据,对于连续性数据又该如何。

二、数据分割

对于离散型数据可直接将不同种的数据进行分割。
对于连续性数据也可将数据离散化后进行分割。

三、分裂属性的选择

分裂属性的选择也是决策树建立算法的重中之重。分为信息增益和信息增益率两大类。信息增益又分为了信息增益熵和Gini值两种。

信息增益

在这里插入图片描述


  • 在这里插入图片描述
    Pi表示类i占的比例。越混乱则熵越大,即纯度越低。
  • Gini值
    在这里插入图片描述
    Pi表示类i占的比值。当越混乱时,值越大,纯度越低。
信息增益率

信息增益点倾向选择分支比较多的属性进行分裂。为了平衡这个问题,引入了信息增益率这个概念。信息增益率是在信息增益的基础上除以分裂节点数据量的信息增益。
在这里插入图片描述
InfoGain是信息增益,就是上面的计算方法。InstrinsicInfo表示分裂子节点数据量的信息增,益公式:
在这里插入图片描述
m表示子节点的个数。ni表示i子节点的数据量,N表示父节点的数据量。ni/N就是分裂到i节点的概率。所以,InstrinsicInfo其实就是分裂节点的熵,子节点越大,该值越大,对于InfoRatio来说分母就增大,从而平衡分子的增大,降低节点分裂时选择子节点多的分裂属性的倾向性。

总结

将信息增益的两个子类算为两类加上最后的信息增益率就是三类。决策树的生成有三个代表的算法就是以这三种来计算不纯度来生成决策树的。ID3算法用的是信息增益,C4.5算法用信息增益率;CART算法使用基尼(Gini)系数。

四、停止分裂

决策树不可能一直无止境的生成下去,最极端的就是将所有的数据都分为一个叶子节点。但是这样的做法是不好的,会增大噪音点的影响,降低决策树的精度,提高决策树的复杂度。因而有以下几种停止分裂的情况:

  • 最小节点数
    当节点的数据达到规定的一个最小数据量的阀值时,就提前停止分裂,这样就可以降低决策树的复杂度,同时降低噪音点的影响。
  • 熵或计Gini小于阀值
    之前将了信息增益,熵或者Gini值越小代表着节点的数据纯度越高。因而,当该值小于某一阀值时,我们就可以认为该节点已经可以认为是纯的了,可以当作结论的叶子节点了,进而停止分裂。
  • 决策树的深度达到指定的条件
    决策树的深度也就从一方面代表了决策树的复杂度。因而,当到达一定的深度时,我们停止分裂。
  • 所有特征已经使用完毕
    当所有特征值已经全部分完了,没有可分的特征值时,决策树被动停止分裂。

五、参考

https://www.cnblogs.com/yonghao/p/5061873.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值