决策树的基础概念

决策树

知识点:是一个树型的结构,根节点、决策点、叶子节点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-37aMWVYx-1636980616255)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211115142936750.png)]

阶段

首先了解熵:物体内部的混乱程度:两个事件A、B发生的概率为PA、PB,HA、HB代表A、B事件发生的不确定性,怎么去解释——>PA越大,HA越小,PA越小,HA越大

①、举例:两个集合A、B,A里面各类都有[1、2、3、4、5、6、7、8、9、10],B里面基本都是1[1、1、1、1、2、1、1、1、1、1],那很明显B的纯度高,A的纯度低,也就是A的熵值高,B的熵值低

那利用数学的思想,其实熵值的计算是有这样一个公式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ik1phOhk-1636980616259)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211115144540338.png)]

如何理解这个公式?根据上面的例子,明显集合A各类的概率P都是0.1,套上公式为(-(0.1*ln(0.1))*(0.1*ln(0.1))…),对于集合B来说(-(0.9*ln(0.9))*(0.1*ln(0.1))),那很明显有个负号,所以A的熵值大

还有一个名词叫做基尼系数,也是同样的道理,同样拿上面集合举例,A的基尼系数(1-(0.1*0.1+0.1*0.1+…))明显大于B的基尼系数(1-(0.19*0.9+0.1*0.1))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JpCXL0Ij-1636980616260)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211115145223135.png)]

由此引入决策树的基本想法——>构造树的基本想法是随着树深度的增加,节点的熵迅速地降低,下降越快越好,也就是树越矮越好

②、举例:14个样本,天气的4个指标导致最后有没有打球(play)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hJGHqOkc-1636980616262)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211115150744497.png)]

play作为label(标签值,也就是最后分类的结果值),目前主要的就是思考哪一个指标作为树的根节点,给出客观条件(没有任何天气信息时,一天打球的概率为9/14,不打为5/14),客观条件下熵值用上面计算公式:(-(9/14*ln(9/14))*(5/14*ln(5/14)))=0.940(log底数不太影响,一般用log2)

所以后面计算计算每个指标的熵,首先对于outlook:

outlookYesNo熵值
sunny2/53/50.971
overcast100
rainy3/52/50.971

其次就是三种的概率sunny(5/14)、overcast(4/14)、rainy(5/14)

总的熵值等于:5/14 * 0.971 + 4/14 * 0 + 5/14 * 0.971 = 0.693

最后对比发现原来熵值为0.940,现在是0.693,那么得出初步结论:熵值下降,混乱效果下降,纯度上升,分类效果强,那么引入一个新的概念:信息增溢,就是原始熵值-现在的熵值=0.247,那我们当然希望分类效果越强越好,也就是熵值下降越大越好,那就是信息增溢值越大越好,那就得计算其他指标的信息增溢值,这就是选出根节点的方法

算出其他三个指标的信息增溢值:temperature=0.029、humidity=0.152、windy=0.048,比较outlook,发现还是outlook值最大,因此选择outlook作为根节点

那问题来了?这样的算法没有问题嘛?

我们设想一种情况,如何指标列种有一列其实和最后结果毫无关系,比如就是一个id,那每一行数据唯一id,这样去算id指标的熵值是不是为0,那信息增溢值是不是最大?这样肯定不是我们想要的,所以引入新的名词——>信息增溢比:算出指标的信息增溢后,除以自身的信息增溢(拿刚才id举例(-(1/14*ln(1/14))*(1/14*ln(1/14))…),这个值一定很大),最后的结果一定很小

那问题来了 ?我们如何评价这棵树建的好不好呢?引入评价函数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2CuQRtB-1636980616262)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211115154920709.png)]

上述公式的Ht是熵值或者基尼系数值,Nt值是指这个叶子节点有几个样本,为什么要用这个函数,可以这样理解,我们想找出好的分类效果,那就得保证每次每类后纯度要高,就是熵值得小,公式内熵值越小不就是最后结果值越小

拓展

连续值切分点怎么切分?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vnsi3FjU-1636980616263)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211115160504643.png)]

排序后:60 70 75 85 90 95 100 120 125 220,进行二分,比如在75和85之前切,计算左右两个的熵值

回归到本来的问题,不希望决策树的高度太高,其实也是因为如果细分太多,也会出现问题(过拟合的问题),这就涉及到两个知识点,并且引入全新的评价函数

预剪枝:在构建决策树的过程时,提前停止

后剪枝:决策树构建好后,然后才开始裁剪

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B3VZBQzN-1636980616264)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211115162512122.png)]

上述公式的α是人为自定义的,Tleaf是叶子节点个数,Ct是之前的评价函数,最终的结果就是全新的评价函数,也就是越低越好

随机森林

引入概念,有放回的采样;随机森林相当于构造多棵决策树,每棵树都能单独出结果,最后再综合所有的结果,随机是什么意思?

1、样本(数据)随机:指的是每次以某个比例去抽取数据并且是有放回的,并不是抽全部数据,避免异常值影响

2、特征(指标)随机:比如之前的天气特征,随机选取其中两个特征,这种也是随机,这没有不放回的说法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

友培

数据皆开源!

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

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

打赏作者

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

抵扣说明:

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

余额充值