关于决策树的原理和实现 python

关于决策树

  • 决策树是随机森林的基本组成单位,随机森林是由很多的树组成的。
  • 决策树的作用就是在特征条件中 划分信息熵最高的

信息熵: 能提供最大不确定性的条件,如有所有同学中有两个条件,男和女,打游戏和不打游戏,
明显:男和女是最能减少不确定性的条件

香龙在文中指出,它的准确信息量应该是:
在这里插入图片描述
其中[公式]表示以2为底的对数, p1, p2, p3为每个条件的概率。
对于一个随机的变量X, 他的信息熵应该是

在这里插入图片描述
如我们的二分类问题, p(x) = p1 p(y) = 1-p1 其中, 0<p1<1
所以,Hx = -(p1logp1 + (1-p1)log(1-p1)
在这里插入图片描述
我们可以画出函数的图像,看的出来, 在0.5的时候, 熵取到最大
也就是说此时的不确定性最大,要把这件事搞清楚所需要的信息量也就越大。并且这也很符合我们的常识,例如“明天下雨和不下雨的概率都是50%”,那么这一描述所存在的不确定性是最大的

条件熵

条件熵就是在特定条件下,减少信息熵的条件,如,引入某个条件,如所有男女中,引入条件-身高180的人,可以减少特定的人群, 这叫部分条件熵, 而引入条件,身高120以上的, 就属于完全条件熵,

在这里插入图片描述

信息增益

在引入特定条件后,能使得目前的不确定性,即u的数值达到最大,那这就是最大信息增益。
在这里插入图片描述
三种决策方式已经讲解完毕了, 接下来就是在树每次划分时,采用最大信息熵的方式进行划分,达到最优决策树。

实例

接下来看个实例用来计算三个熵
在这里插入图片描述
其中,x1表示是否有房, x2表示是否有工作, x3表示学历条件,Y是预测结果, 表示是否通过贷款申请。

熵的计算

Hy = - (5/15log5/15 + 10/15log10/15) = 0.918

条件熵的计算:

在这里插入图片描述

Hy|x1 = - (7/15 (3/7log3/7+ 4/7log4/7) - 8/15(1/8log1/8 +7/8log7/8) = 0.75
Hy|x2 = -8/15(4/8log4/8 +4/8log4/8) - 7/15(6/7log6/7 + 1/7log1/7) = 0.81
Hy|x3 = -8/15(5/8log5/8 + 3/8log3/8) - 4/15(3/4log3/4 + 1/4log1/4) - 3/15(2/3log2/3 + 1/3log1/3) = 0.91

则条件熵信息增益分别为

ID3算法

每次都以最大信息增益熵为划分依据,
第一次以A1为条件进行划分
在这里插入图片描述
在这里插入图片描述

划分完再次计算信息熵
如HD1|A2 = -3/7(3/3log3/3 + 0) - 4/7(1/4log1/4 + 3/4log3/4) = 0.464
HD1|A3 = -3/7(1/3log1/3 +2/3log2/3) - 4/7(1/4log1/4+3/4log3/4) = 0.464
所以划分不妨以A2进行划分
而D2的熵增益为
HD2|A2 = -5/8(4/5log4/5 + 1/5log1/5) - 3/8 * 0 = 0.451
HD2|A3 = - 4/8(4/4log4/4 + 0 ) - 2/8(0) - 2/8(1/2log1/2 + 1/2log1/2) = 0.25
所以再次划分
在这里插入图片描述
在这里插入图片描述
继续按条件划分
在这里插入图片描述
在这里插入图片描述
缺点:由于每次划分都选择最大信息量进行划分,所以很快就划分完毕,并且容易产生特征偏差,即一个子树都是A2的情况,容易产生又矮又胖的情况, 产生过拟合现象。所以还有另一种划分方式。下面将介绍C4.5的划分 方式

C4.5 即在原本划分的方式上, 将节点划分方式改成增益比的方式进行划分,即
在这里插入图片描述
下篇将 介绍如何用python 的sklearn 方法实现决策树并进行可视化

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

东哥爱编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值