IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 统计学习(三)决策树ID3、C4.5、CART -> 正文阅读

[数据结构与算法]统计学习(三)决策树ID3、C4.5、CART

决策树是一种树形分类结构,利用数据集构建一棵高效的分类树,决策树的基本思想很简单,在后面的发展被很多学者进行了优化升级,其衍生物有CART,ID3,C4.5,RF,XGBoost和LightGBM。其中RF、XGBoost和LightGBM都是集成学习模型,其中包含了很多弱学习器(比如单一的一棵决策树),进行模型融合,将每棵决策树表现最优的地方进行融合,得到了一个综合表示最优的模型。不同于朴素贝叶斯模型,朴素贝叶斯模型大多用于解决分类问题,但是决策树既可以用于分类,也可以用于回归问题

本文先介绍决策树的基本构成思想,在后面会简单介绍一下如何做回归问题,其中XGBoost和LightGBM是经典的用于回归的强大模型,包括在现在很多的大型算法比赛中其效果性能都非常显著,很有必要了解掌握。

一、一棵简单的决策树

还是拿朴素贝叶斯分类里面用的分西瓜数据来做说明。
在这里插入图片描述
现在西瓜有6个特征:色泽、根蒂、敲声、纹理,脐部,触感。2个结果:好瓜和坏瓜。

于是我们构建一个树节点,特征为色泽,参数为:青绿、乌黑、浅白

在这里插入图片描述

我们注意到色泽为青绿的西瓜中根蒂参数为:蜷缩、稍蜷、硬挺。色泽为乌黑的西瓜中根蒂参数为:蜷缩、稍蜷。色泽为浅白的西瓜中根蒂参数为:蜷缩、稍蜷、硬挺

于是继续构建树节点。

在这里插入图片描述
所以这样一说的话就非常简单了,就是这样不断的构建下去,直到我们的标签好瓜和坏瓜作为叶子节点。但是通过上面的我这样简单的构建你们也注意到一个问题了吧,那就是上面的这棵决策树的结构太冗余了,因为我们考虑哪个节点先做决策节点再继续往下分裂,得到的树的结构肯定不一样,所以为了让我们的决策树结构更加简洁直观,这样模型预测的时候也会更加高效,相关学者在后面的学习中便提出了一些改进。

二、ID3决策树

为了解决上面我们提到的决策树结构太过复杂冗余的问题,相关学者提出了ID3决策树,ID3采用了信息增益的方法来优先选择特征节点构建决策树。

2.1 信息熵

信息熵来源于通信工程,其计算过程为假设某个变量X取值为{x1,x2,x3,…,xn},每种取值取到的概率为{p1,p2,p3,…,pn}。
那么信息熵计算公式为
在这里插入图片描述信息熵数值越大,说明一个变量的变化情况可能越多,那么它携带的信息量就越大,该系统越不稳定,存在的不确定性因素就越多。

比如我们的某个特征拥有的数据为:1,2,1,1,2,3,4,5。
其取值为:1,2,3,4,5。
每个数值取到的概率为:1:3/8,2:2/8,3:1/8,4:1/8,5:1/8。

于是这个特征的信息熵为

-(3/8*log(3/8) + 2/8*log(2/8) + 1/8*log(1/8) + 1/8*log(1/8) + 1/8*log(1/8))=2.1556390622295662

定义:如果某个取值的概率为0,那么定义0*log0=0

2.2 信息增益

信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。可以理解为当前节点开始往下分裂,某个特征可以使得当前的信息熵减小最多,使得后面的结构更加简洁,于是我们选择当前节点信息增益最大的那个特征作为分裂节点。

抛出公式如下:
在这里插入图片描述
在这里插入图片描述

假设A取值为A1,A2,A3,…,An。Di为Ai的数目,Di表示在特征A取值为Ai的情况下D的集合。

举例如下,回到西瓜问题,那么一开始选择分裂的特征节点,我们先计算H(D),此时我们的D为类别:好瓜或坏瓜。

于是

好瓜数目=8
坏瓜数目=9
H(D)=-(8/17*log(8/17) + (9/17)*log(9/17))=0.9975025463691153
以特征色泽进行计算说明,特征色泽取值为:青绿、乌黑、浅白。数目分别是:青绿=6、乌黑=6、浅白=5。
于是当特征色泽=青绿时,D1={是,是,是,否,否,否};->是:3,否:3
当特征色泽=乌黑时,D2={是,是,是,是,否,否};->是:4,否:2
当特征色泽=浅白时,D3={是,否,否,否,否}.->是:1,否:4
于是
H(D|A)=-(6/17*(3/6*log(3/6) + 3/6*log(3/6)) + 6/17*(4/6*log(4/6) + 2/6*log(2/6)) + 5/17*(1/5*log(1/5) + 4/5*log(4/5)))
g(D|A)=H(D)-H(D|A)

于是我们按照这样的方法一直计算,把当前的每个特征都算出对应的信息增益,把信息增益最大的特征作为当前分裂的节点。然后往下,此时得到一个特征X后,现在的特征X作为上一次的D,继续上面重复的计算一直把所有的特征节点找出来。

于是得到了一棵ID3构建的决策树。

三、C4.5决策树

C4.5是对ID3决策树的一种改进,因为当每个属性中每种类别都只有一个样本时,那这样的属性信息熵就等于零,根据信息增益就无法选择出有效的分类特征。

C4.5采用信息增益比,其计算方式很简单,仅仅是在ID3的基础上,除以对应特征的信息熵。那么:

信息增益比=g(D|A)/H(A)

比如我们上面已经算出了g(类别|色泽),那么此时的

H(色泽)=-(6/17*log(6/17) + 6/17*log(6/17) + 5/17*log(5/17))

最后色泽的信息增益比=g(类别|色泽)/H(色泽)

同样的,哪个特征的信息增益比最高,就选择哪个特征作为当前的分裂节点。

四、CART决策树

上面我们提到的ID3和C4.5都是针对分类问题,不能处理回归问题,我们就会想,决策树可以用来做回归问题吗?答案肯定是可以的,于是CART树问世。

ID3和C4.5模型是用较为复杂的信息熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归。因此CART(Classification And Regression Tree)做了改进,可以处理分类问题,也可以处理回归问题。

CART树采用了基尼系数,不同于ID3和C4.5的信息熵,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。这恰好和信息增益(比)相反。CART分类树算法每次仅对某个特征的值进行二分,而不是多分,这样CART分类树算法建立起来的是二叉树,而不是多叉树。

比如C4.5构建的一棵树如下
在这里插入图片描述

而CART构建的树是这样的,如下:
在这里插入图片描述
后续待更新。。。。。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:26:57  更:2021-07-22 14:29:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 20:25:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码