决策树cart算法

ID3采用的信息增益度量存在一个缺点,它一般会优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益。(条件熵越小,信息增益越大)

C4.5中是用信息增益比率(gain ratio)来作为选择分支的准则。信息增益比率通过引入一个被称作分裂信息(Split information)的项来惩罚取值较多的Feature。除此之外,C4.5还弥补了ID3中不能处理特征属性值连续的问题。但是,对连续属性值需要扫描排序,会使C4.5性能下降
在这里插入图片描述

(1)信息增益率
(2)连续值属性
(3)缺失值
(4)后剪枝
基于错误剪枝EBP(Error Based Pruning)
算法目的:决策树的剪枝是为了简化决策树模型,避免过拟合。
过拟合:你会发现对于训练样本而言,这个树表现完好,误差率极低且能够正确得对训练样本集中的样本进行分类。但是对于测试数据的表现就没有想象的那么好,或者极差,这就是所谓的过拟合(Overfitting)问题。

过拟合(overfitting)
(1)建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则
(2)样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则
(3)假设的模型无法合理存在,或者说是假设成立的条件实际并不成立
(4)参数太多,模型复杂度过高
(5)对于决策树模型,如果我们对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集

CART使用了 CCP代价复杂度剪枝算法,对C4.5的剪枝方法进行了优化。
针对C4.5的多叉树的问题,CART改成了二叉树。
CART可以分为CART分类树和CART回归树。

CART决策树全称为Classification and Regression Tree,可以应用于分类和回归
采用基尼系数来划分属性
基尼指数(跟熵的概念定义类似)

基尼系数
在这里插入图片描述
因此在候选属性中选择基尼系数最小的属性作为最优划分属性。(Gini系数增益最大的属性作为最优划分属性)

CART举例:

分别计算它们的Gini系数增益,取gini系数增益值最大(gini系数最小)的属性作为决策树的根节点属性。根节点的Gini系数为:
Gini(是否拖欠贷款)=1−(3/10)^2 −( 7/10)^2=0.42

在这里插入图片描述
在这里插入图片描述

计算各特征属性的gini系数(婚姻状况)
因为CART决策树的生成就是递归地构建二叉决策树的过程
若按婚姻状况属性来划分,属性婚姻状况有三个可能的取值{married,single,divorced},分别计算划分后的的Gini系数增益。
{married} | {single,divorced}
{single} | {married,divorced}
{divorced} | {single,married}
然后选择最大的gini系数增益和其他特征属性gini系数增益作比较。

在这里插入图片描述

计算各特征属性的gini系数(收入)
最后考虑年收入属性,我们发现它是一个连续的数值类型。
在这里插入图片描述
对于年收入属性为数值型属性,首先需要对数据按升序排序,然后从小到大依次用相邻值的中间值作为分隔将样本划分为两组。
例如:当面对年收入为60和70这两个值时,我们算得其中间值为65。倘若以中间值65作为分割点。
Δ(年收入)=0.42−1/10×0−9/10×[1−(6/9)^2− (3/9)^2]=0.02

选择最佳属性
三个属性划分根节点的增益最大的有两个:年收入属性和婚姻状况,他们的增益都为0.12。此时,选择其中任意一个属性都可以。例如以收入为根节点。
因为cart算法以递归的方式构造二叉树,接下来我们看一下其他结点如何选择?
在这里插入图片描述
CART举例
接下来,采用同样的方法,分别计算剩下属性,其中根节点的Gini系数为(此时是否拖欠贷款的各有3个records) Gini(是否拖欠贷款)=1−(3/6)2−(3/6)2=0.5
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Cart算法构造决策树时,以递归的方式构造二叉树。在根节点选取完之后,经过上面的计算,发现年收入(80为分割点)进行划分的时候,信息增益最大。
因此选择income<=80为结点继续向下划分
在这里插入图片描述
在这里插入图片描述
在以income<=80为结点进行划分时,我们发现得到的叶子节点已经非常纯,划分完毕。

附:以婚姻状况作为根节点
三个特征属性划分根节点的增益最大的有两个:年收入属性和婚姻状况,他们的增益都为0.12。此时,选择随机选取任意一个属性都可以。例如选择婚姻状况为根节点。接下来以同样的方法,分别计算剩下的属性,其中根节点的Gini系数为:
∆{是否贷款}=1−(3/6)2−(3/6)2=0.5
与前面的计算过程类似,对于是否有房属性,可得:
∆{是否有房}=0.5−4/6×[1−(3/4)2−(1/4)2]−(2/6)^2=0.25
对于年收入属性可得:
在这里插入图片描述
在这里插入图片描述
C4.5采用信息增益率来作为分支特征的选择标准,而CART则采用Gini系数;
C4.5不一定是二叉树,但CART一定是二叉树。
关于过拟合以及剪枝
决策树很容易发生过拟合,也就是由于对train数据集适应得太好,反而在test数据集上表现得不好。这个时候我们要么是通过阈值控制终止条件避免树形结构分支过细,要么就是通过对已经形成的决策树进行剪枝来避免过拟合。另外一个克服过拟合的手段就是基于Bootstrap的思想建立随机森林(Random Forest)

在这里插入图片描述

评价函数:

损失函数
在这里插入图片描述

N_t代表该叶子节点样本的个数,H(t)代表熵值。我们希望C(T)越小越好,类似于损失函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侬本多情。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值