数学英语计算机决策树,01 决策树 - 数学理论概述 - 熵

今天开始进入决策树的算法部分,首先介绍一下这部分涉及到的知识点。

一、大纲

1、信息熵

决策树在生成过程中,对于评判是否要对树进行划分的关键指标。即树生成时的决策根本。

2、决策树

之前提过KD树的划分标准。02 KNN算法 - KD Tree KD树是基于一个划分的标准(中位数),最后构建起了整个KD树。决策树同样也是一个树形结构,同样需要某些决策指标来构建起决策树。最后帮助我们实现回归或分类的目标。

3、决策树优化

和KD树一样,决策树模型生成以后同样会存在欠拟合和过拟合的问题。如何解决这些问题就是决策树优化需要考虑的。

4、剪枝

防止决策树过拟合的过程,实际生产过程中剪枝的操作用的很少,但面试可能会提问,了解即可。

5、决策树可视化

导入一些新的模块,最后将决策树展现在用户面前。

二、决策树的直观理解

602d1bf3ab01

根据一个人是否有房产、婚姻情况、年收入情况判断一个人是否有能力偿还债务。

根据样本构建出一个模型:

602d1bf3ab01

决策树

相比Logistic模型、回归模型中参数的理解,决策树是一个解释性更强的模型。

三、比特化

数据:BACADCBD...

这里ABCD出现的概率都是1/4,等概率。

即P(X=A) =P(X=B) =P(X=C) =P(X=D) =1/4

令A-00 B-01 C-10 D-11(等概率,用两个比特位表示4个变量即可)

BACADC = 01001011100111

E = 1×1/4 *4 = 1

(每个变量占用一个比特位,出现概率是1/4,一共4个变量,平均每个变量占1个比特位)

如果X变量出现概率不同:

即P(X=A)=1/2; P(X=B) = 1/4; P(X=C) =P(X=D) =1/8;

用更少的比特位描述出现概率更大的事件,能够让总的比特位数量最少:

令A-0 B-10 C-110 D-111

E=1×1/2 + 2×1/4 + 3×1/8 + 3×1/8 = 1.75

平均每个变量占1.75个比特位。其他任何一种编码方式最终得到的期望都会大于1.75,耗费了多余的计算机资源。

还可以用下面的公式表示平均每个变量占用的比特位数量:

602d1bf3ab01

math?formula=%5Ccolor%7Bred%7D%7B%E6%AF%8F%E4%B8%AA%E5%8F%98%E9%87%8F%E5%87%BA%E7%8E%B0%E7%9A%84%E6%A6%82%E7%8E%87%EF%BC%9A%7D p

math?formula=%5Ccolor%7Bred%7D%7B%E6%AF%8F%E4%B8%AA%E5%8F%98%E9%87%8F%E5%8D%A0%E7%94%A8%E7%9A%84%E6%AF%94%E7%89%B9%E4%BD%8D%EF%BC%9A%7D -log2p

所以,m个变量在不同的出现概率p1~pm时,平均每个变量占用的比特位公式如下:

602d1bf3ab01

四、信息熵

信息熵是描述一个信息量的指标。如果一个事件发生的概率越大,那么认为该事件蕴含的信息越少。

当一个事件百分百确定的时候,我们得不到其他推论。那么认为信息量为0。

只有当事件的出现存在概率性,说明有额外的信息影响事件发生,那么针对这些信息我们才需要推理判断 。

信息熵是系统有序程度的度量,一个系统越是有序,信息熵就越低。信息熵就是用来描述系统信息量的不确定度。

信息熵 = 比特化随机变量X占用比特位的数学期望

602d1bf3ab01

H(X)是随机变量X的信息熵

五、条件熵

回顾H(X)的概念,并看下面的例子:

602d1bf3ab01

令L(S) = -P(S) × log2(S)

H(X) = L(X=数学) + L(X=IT) + L(X=英语)

= -0.5 × log2(0.5) - 0.25 × log2(0.25) - 0.25×log2(0.25)

= 0.5 + 0.5 + 0.5 = 1.5

H(Y) = L(Y = M) + L(Y = F)

= -0.5 × log2(0.5) - 0.5 × log2(0.5)

= 0.5 + 0.5 = 1

H(X, Y) = L(X=数学, Y=M) + L(X=IT, Y=M) + L(X=英语, Y=F) +

L(X=数学, Y=F) = -0.25 × log2(0.25) × 4 = 2

看明白上面的例子后,接下来引入条件熵的概念:

给定条件X的情况下,随机变量Y的信息熵就是条件熵。

给定条件X的情况下,所有不同x值情况下,Y的信息熵的平均值,叫做条件熵。

当专业X为数学时,Y的信息熵的值为:H(Y|X=数学)

怎么计算H(Y|X=数学)?先把数学相关的项提取出来:

602d1bf3ab01

现在姓别出现的概率都是2/4,根据公式:

math?formula=%5Ccolor%7Bred%7D%7B%E6%AF%8F%E4%B8%AA%E5%8F%98%E9%87%8F%E5%87%BA%E7%8E%B0%E7%9A%84%E6%A6%82%E7%8E%87%EF%BC%9A%7D p

math?formula=%5Ccolor%7Bred%7D%7B%E6%AF%8F%E4%B8%AA%E5%8F%98%E9%87%8F%E5%8D%A0%E7%94%A8%E7%9A%84%E6%AF%94%E7%89%B9%E4%BD%8D%EF%BC%9A%7D -log2p

602d1bf3ab01

平均每个元素占比特

-log2(0.5)=1:单个性别的信息熵。

H(Y|X=数学) = -0.5 × log2(0.5) × 2 = 1

H(Y|X=数学) 是 H(Y|X) 的一部分,H(Y|X)还包括H(Y|X=IT)、H(Y|X=英语) 根据上述的方式能够依次计算出H(Y|X=IT)、H(Y|X=英语) 的值。

回顾一下定义:

给定条件X的情况下,所有不同x值情况下,Y的信息熵的平均值,叫做条件熵。

602d1bf3ab01

条件熵

602d1bf3ab01

条件熵例子

以下log表示log2

条件熵 H(X/Y)

= H(X/Y=M)×P(Y=M) + H(X/Y=F)×P(Y=F) 即加权平均熵

= [L(X=数学/Y=M)+L(X=数学/Y=M)]×P(Y=M) + H(X/Y=F)×P(Y=F)

= [-0.5 × log(0.5) × 2] × 0.5 + H(X/Y=F)×P(Y=F)

= 0.5 + H(X/Y=F)×P(Y=F) = 0.5 + 0.5 = 1

= H(X, Y) - H(Y)

条件熵 H(Y/X)

= H(Y/X=数学)×P(X=数学)+H(Y/X=IT)×P(X=IT)+H(Y/X=英语)×P(X=英语)

= [-0.5 × log(0.5) × 2] × 0.5+H(Y/X=IT)×P(X=IT)+H(Y/X=英语)×P(X=英语)

= 0.5 + 0 + 0 = 0.5

= H(X, Y) - H(X)

条件熵的另一个公式: H(Y/X) = H(X, Y) - H(X)

事件(X,Y)发生所包含的熵,减去事件X单独发生的熵,即为事件X发生前提下,Y发生“新”带来的熵。

结合概率论中的Venn图思考上面公式的意义:

602d1bf3ab01

最后给出一个推导公式:

602d1bf3ab01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值