初识决策树算法

决策树ID3

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。
通俗的来讲,就是在已经知道某个事件发生的概率的情况下,通过构建一个模型来推测已知条件下的结果。
模型怎么建立呢,网上看了很多博客,都是一上来就给一大堆公式,不知道你们什么感觉,反正我是看的脑壳疼,对新手来说,最好通过一个具体的实例来进行说明,比方说有如下事件:
明天想要出去打球,那我们就需要考虑下明天的天气情况,天气预报说明天会是sunny、温度为hot、湿度为narmal、无风,那么怎么预测明天会不会出去打球,对于我们自己来说打不打球就是看心情的事啦,但是对于其他人来说,我们一般需要考虑他之前的行为来推测他会不会出去打球,假设有下面这个表,为打球与否的历史数据:
天气情况与打球与否历史数据
那么对于这个历史数据我们应该怎么建立决策树模型呢?
想要判断出明天是否会出去打球,我们肯定就需要考虑这4个条件,那么问题来了,这4个条件哪个是我们首先要考虑的呢,这就引出一个数学指标问题,数学上把熵定义为体系的混乱程度,熵的计算公式为:
熵的计算
其中Pi为i在整个体系中的出现概率;
一开始看到这个公司肯定有点懵逼,我们不妨考虑下几个极端的情况,假设一个必然事件,即出现的概率为1的事件,很明显,必然事件的混乱度为0,当一个事件发生概率为0.5时,此时整个体系的混乱度(另一个事件发生的可能性也是0.5),则此时体系的熵为:-0.5log2(0.5)-0.5log2(0.5)=1,当系统有4种可能发生,且可能性均为0.25时,此时的混乱度为:-0.25log2(0.25)-0.25log2(0.25)-0.25log2(0.25)-0.25log2(0.25)=2,依次类推,熵的值是与提醒可能的个数与概率有关的,我们可以这么理解,当一个事件出现的可能性越多时,一般来说它的混乱度就越大,也就是熵越大。
回到例题中,我们可以很简单的计算出它的熵:
例题中的结果只有两个,一个是出去玩,一个是不出去玩,出去玩的概率是:9/14,不出去玩的概率是5/14,则熵的计算公式为:-9/14log2(9/14)-5/14log2(5/14)=0.94;
那对于这个值对于我们选取那个条件出去玩有什么作用呢?
聪明的同学肯定意见想到,从上面说的必然事件的熵为0,我们想要做的决策不就是把熵的值给降低吗,这样它的结果有也必然会更接近必然事件,那对我们来说哪个条件把熵降低的更多,哪个条件就是我们首先需要考虑的,这就是ID3决策树算法,信息增益算法;
信息增益
Gain即为信息增益值,也就是选择某个条件作为第一因素后,熵减小的幅度,H(D|A)的算法整体与熵的算法类似,不过需要算上每个概率的权重;
在我们的例题中,sunny/overcast/rainy的权重分别为5/14、4/14、5/14(也就是14个样本中sunny/overcast和rainy出现的次数),接下来我们计算sunny天气下,出去玩和不出玩的概率分别为(Outlook=sunny条件下,play=yes和no的概率):2/5、3/5,overcast天气下,出去玩和不出去玩的概率分别为:1,0,rainy天气下出去玩和不出去玩的概率分别为:3/5、2/5;此时我们可以得出天气的熵为:5/14*[-2/5log2(2/5)-3/5log2(3/5)]+4/14*[-1log2(1)-0]+5/14*[-3/5log2(3/5)-2/5log2(2/5)]=0.69,类似的我们可以算出温度、湿度和是否有风的熵值分别为:0.91,0.79,0.89,则每个条件的信息增益分别为:0.25,0.03、0.15和0.05,显而易见,信息增益最大的为天气,可以画出第一层决策树为:
首个节点
之后的决策节点可以用相似的方法计算其他条件的信息增益:
首先我们计算sunny节点下的打球与否的情况:
天气为sunny
同样的我们可以计算出这个体系下的熵为:-3/5log2(3/5)-2/5log2(2/5)=0.97
然后我们计算温度、湿度和是否有风情况下的熵分别为:0.4,0,0.94,;
则每个条件下的信息增益为:0.57,0.97,0.03;
显而易见,信息增益最大的为湿度,类似的我们可以计算出天气分为为overcast和rainy情况下的信息增益,最后我们用类似的方法就能得出一个决策树模型:
决策树模型
类似的,还有C4.5和CART两种构建决策树模型的方法,区别只在于判断分裂的节点先后的计算方法的不同,C4.5采用的是信息增益率来作为判断节点,即在ID3的信息增益的计算基础上除以整个体系的熵,来作为分裂的判断方法,公式如下:
信息增益比
CART采用的是GINI增益系数来作为首个分裂节点的判断方法,GINI增益系数表示的是分裂后子样本的纯净度,GINI增益系数越小,子样本的纯净度越高,分裂效果越好,它和熵的作用刚好相反。
GINI系数
其中,pi表示分类结果中第i类出现的概率。
目前刚开始学习深度学习的内容,有不足的地方欢迎各位大佬指正!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值