决策树学习笔记

决策树学习概述

首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。

什么是决策树?

所谓决策树,就是一个类似于流程图的树形结构,树内部的每个节点代表的是对一个特征的测试,树的分支代表该特征的每一个测试结果,而树的每一个叶子节点代表一个类别。树的最高层就是根节点。下图即为一个决策树的示意描述,内部节点用矩形表示,叶子节点用椭圆表示。如图所示:
在这里插入图片描述

一棵决策树的生成过程主要分成以下三个部分:

特征选择:特征选择是指从训练数据中众多的特征中选择一个特征作为当前节点的分类标准,如何选择特征有着很多不同量化评估标准,从而衍生出不同的决策树算法。

决策树生成:根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。 树结构来说,递归结构是最容易理解的方式。

剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。

在讲解特征选择之前,我们先了解一些概念:
在这里插入图片描述
在上图中,(这里不太规范)可以看到椭圆形的是相对的根节点,方形的是叶子节点,我们可以发现在每个叶子节点内部,都包含着C0和C1两个数据,所包含的个数不一,对于决策树,我们是希望每个叶子节点只包含一类,但是实际中每个叶子节点都包含了混合项,如何评价哪个分类更好,就引出了“不纯度”来做衡量标准。我在看视频讲解时,不纯度的第一种衡量标准为GINI系数。如图表达所示:
在这里插入图片描述
为了更好地解释GINI系数,请看下图。下图是我在网上视频教学截图的,例子很好,可以很好的解释GINI系数。下图仍然是针对上图中叶子节点计算的系数,每个节点包含不同数量的两个类别。
在这里插入图片描述
上文中提到“不纯度”的衡量标准可以表示为GINI系数,在第一个节点GINI系数计算中,GINI系数为0,也就是“不纯度”为0,那也就是纯度为1,代表数据都是“纯的”,都是一个类别,根据实际,节点1,确实只包含C2。然后在看节点2,GINI系数为0.278,节点3的GINI系数为0.444,节点2和节点3对比,节点3 的“不纯度”最大,从实际混合程度来看,节点3包括2个C1和4个C2,确实是混合度最高。

“不纯度”的第二种解释,也就是衡量标准–Entropy熵

熵:熵是表示随机变量不确定性的度量
解释:说白了就是物体内部的混乱程度,比如杂货市场里面什么都有那肯定混乱呀,专卖店里面只卖一个牌子的那就稳定多啦~

设X是一个取有限个值的离散随机变量,其概率分布为:
P(X=xi )=pi,i=1,2,3,……n
则随机变量的x的熵定义为:
在这里插入图片描述
下面就来看看Entropy熵的计算示例,如下图所示:

在这里插入图片描述
从上图中得出的最终数据也可以看出,节点1的Entropy熵为0,说白了就是混合度为0 ,与实际情况一致。节点3的Entropy熵最大,混合度最大,与实际情况一致。到这里两种评价方式就介绍完了。
介绍完了“不纯度”衡量标准–Entropy熵、GINI系数就要解决实际的问题了。

第一步:如何切分特征(选择节点)–特征选择
问题:根节点的选择该用哪个特征呢?如何切分呢?

目标:通过一种衡量标准,来计算通过不同特征进行分支选择后的分类情况,找出来最好的那个当成根节点,以此类推。衡量标准-熵、GINI系数(不纯度)

解决一:特征挑选方法(信息增益法Gain)
选择具有最高信息增益的特征作为测试特征,利用该特征对节点样本进行划分子集,会使得各子集中不同类别样本的混合程度最低,在各子集中对样本划分所需的信息(熵)最少,形象的见下图:(注意,信息增益既可以用熵也可以用GINI系数来计算)
在这里插入图片描述
这里要强调一下:在这里插入图片描述
谁当根节点这个问题,以及决策树到底怎么构建(第二步),我们举一个具体的例子来重新理解一下。
在这里插入图片描述
下面是统计两周内关于打球还是不打球的相关四个因素,进行统计的例子,如下图所示:
在这里插入图片描述
在没有给定任何有关天气的其他信息时,根据下图的历史数据,我们只知道未来新的一天打球的概率是9/14,不打的概率是5/14,此时的Entropy熵为:
-9/14 log(9/14) - 5/14log(5/14)=0.940
在这里插入图片描述
而根据历史统计数据,(outlook取值为sunny、overcast、rainy的概率分别是5/14、4/14、5/14,所以当已知变量outlook的值时,信息熵为:
5/14 × 0.971 + 4/14×0 + 5/14×0.971 = 0.693
这样的话系统熵就从0.940下降到了0.693,信息增益Gain(outlook)为0.940-0.693=0.247
同样可以计算出Gain(temperature)=0.029, Gain(humidity)=0.152,Gain(windy)=0.048。
Gain(outlook)最大(即outlook在第一步使系统的信息熵下降得最快),所以决策树的根节点就取outlook

增益最大的为根节点(根节点就确定了),此时只是确定了最顶层的第一个根节点,那么顶层的下一层的第二个根节点如何确定呢?
答:根节点下的第二个节点选择信息增益中除了根节点最大的增益的相关项作为第二根节点,也就是除了确定的第一根节点,选取剩余三个中增益最大的做第二根节点。

到这里,一颗决策树就构建好了,这就是关于构建一颗决策树的分类问题。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

勇敢牛牛@

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

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

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

打赏作者

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

抵扣说明:

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

余额充值