《机器学习》- 决策树

重新学了一遍周志华老师《机器学习》中的决策树,在此做个学习整理与总结吧。
决策树(decision tree)是一类常见的机器学习方法,用于分类问题。一般来说,一颗决策树包含一个根节点,若干个内部节点和若干个叶子节点,叶子节点对应于决策结果,根节点和内部节点则对应于一个属性测试,从根节点到每个叶节点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一颗泛化能力强的决策树。

这里写图片描述

如上图,则是一个典型的二分类决策树,那么自然而然就会想到,根节点和内部节点该怎么选择呢?决策树按照节点选择规则不同,共分三种:ID3决策树、C4.5决策树、CART决策树,下面将以如下的西瓜数据集为例,详细介绍这三种决策树。

这里写图片描述

在介绍各种决策树之前,先介绍一个概念:“信息熵”,信息熵是度量样本集合纯度的一种指标,假设当前样本集合 D 中第k类样本所占的比例为 pk(k=1,2,...,m) ,则 D 的信息熵定义为
Ent(D)=mk=1pklog2pk

Ent(D) 的值越小,则说明 D 的纯度越高

ID3决策树

从西瓜数据集表中可以看出,该数据集包含17个样本,标记为是否为好瓜,其中,正例为标记为好瓜的数据,占p1=817,反例为标记为坏瓜的数据,占 p2=917 ,则根节点的信息熵为
Ent(D)=2k=1pklog2pk=(817log2817+917log2917) =0.998
ID3决策树则是以“信息增益”为判定标准,来对属性进行划分的,属性 a 对样本集D进行划分所获得的“信息增益”定义为:
Gain(D,a)=Ent(D)Vv=1|Dv||D|Ent(Dv)
一般而言,信息增益越大,则意味着使用属性 a 来进行划分所获得的“纯度提升”越大。
对于西瓜数据集,我们要计算当前属性集合{色泽,根蒂,敲声,文理,脐部,触感}中每个属性的信息增益,以属性“色泽”为例,它有3个可能的取值:{青绿,乌黑,浅白}。若使用该属性对D进行划分,则可得到3个子集,分别记为: D1(=绿),D2(=),D1(=)
子集 D1 包含编号为{1,4,6,10,13,17}的6个样例,其中正例占 p1=36 ,反例占 p2=36
子集 D2 包含编号为{2,3,7,8,9,15}的6个样例,其中正例占 p1=46 ,反例占 p2=26
子集 D3 包含编号为{5,11,12,14,16}的5个样例,其中正例占 p1=15 ,反例占 p2=45
则,根据信息熵公式,可计算出用“色泽”划分之后所获得的3个分支节点的信息熵为:
Ent(D1)=(36log236+36log236)=1.000 ;
Ent(D2)=(46log246+26log226)=0.918 ;
Ent(D3)=(15log215+45log245)=0.722 ;
于是,可算出属性“色泽”的信息增益为
Gain(D,)=Ent(D)3v=1|Dv||D|Ent(Dv)=0.998(6171.000+6170.918+5170.722)=0.109
类似的,可以计算出其他属性的信息增益,然后再根据信息增益最大的属性作为根节点,对数据进行划分,然后,决策树将对每个分支结点做进一步划分。

C4.5决策树

实际上,信息增益准则对可取值数目较多的属性有所偏好,为了减少这种偏好带来的不利影响,C4.5决策树算法不直接使用信息增益,而是使用“增益率”来选择最优划分属性,增益率定义为:
Gainratio(D,a)=Gain(D,a)IV(a)
其中, IV(a)=Vv=1|Dv||D|log2|Dv||D| 称为属性 a 的“固有值”,属性a的可能取值数目越多,则 IV(a) 越大。
以属性“色泽”为例,可算出属性“色泽”的信息增益率为
Gainratio(D,)=Gain(D,)IV()=0.109(617log2617+617log2617+517log2517)=0.1091.580=0.0690
类似的,可以计算出其他属性的信息增益率,需要注意,增益率准则对可取值数目较少的属性有所偏好,因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是先从候选集中找出信息增益高于平均水平的属性,然后再从中选择增益率最高的。

CART决策树

CART决策树使用“基尼指数”来选择划分属性,数据集 D 的纯度可用基尼值来度量:
Gini(D)=mk=1k1kpkpk1=1mk=1pk2
直观来说, Gini(D) 反映了从数据集 D 中随机抽取两个样本,其类别标记不一致的概率,因此,Gini(D)越小,则数据集 D 的纯度越高。
属性a的基尼指数定义为:
Giniindex(D,a)=Vv=1|Dv||D|Gini(Dv)
以属性“色泽”为例,可算出属性“色泽”各个取值的基尼值为
Gini(D1)=1mk=1pk2=1362362=0.5
Gini(D2)=1mk=1pk2=1462262=0.444
Gini(D3)=1mk=1pk2=1152452=0.6
Giniindex(D,)=3v=1|Dv||D|Gini(Dv)=6170.5+6170.444+5170.6=0.5096
类似的,可以计算出其他属性的基尼指数,然后选择那个划分后基尼指数最小的属性作为最优划分属性。

决策树算法是机器学习中常用的一种算法,它通过构建一棵树形结构来进行分类或回归任务。决策树算法有多种不同的变体,其中包括ID3算法、C4.5算法和基本决策树算法。 ID3算法是最早提出的一种决策树算法,它的核心思想是通过计算信息增益来选择最佳的特征进行节点的划分。具体步骤是:从根节点开始,计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征,然后根据该特征的不同取值建立子节点,再对子节点递归地应用以上步骤,直到所有的特征信息增益很小或没有特征可选为止。 C4.5算法是对ID3算法的改进,它引入了信息增益率(比)来选择特征,解决了ID3算法对于取值较多的特征有偏好的问题。与ID3算法相似,C4.5算法也使用递归的方式构建决策树,但在选择划分特征时,使用信息增益率作为选择的依据。 基本决策树算法是决策树算法的一种简化版,它没有引入信息增益信息增益率,而是通过计算基尼指数来选择最佳的划分特征。基尼指数衡量了一个特征的不纯度,选择基尼指数最小的特征进行划分。基本决策树算法相对于ID3算法和C4.5算法更简单直观,但在某些情况下可能会有一定的性能损失。 总的来说,决策树算法通过构建一棵树形结构来进行分类或回归任务,其中ID3算法、C4.5算法和基本决策树算法是其中的三种常见变体。每种算法都有其特点和优缺点,选择适合具体问题的算法可以提高算法的性能和准确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [机器学习算法(3)之决策树算法](https://blog.csdn.net/qq_20412595/article/details/82048795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值