1. 帮助理解的前置case
1.1 case1:相亲
参考CSDN其他blog
决策树,顾名思义,是一种树,一种依托于策略抉择而建立起来的树。
套用俗语,决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话:
这个女孩的决策过程就是典型的分类树决策。
相当于通过年龄、长相、收入和是否公务员对将男人分为两个类别:见和不见。假设这个女孩对男人的要求是:30岁以下、长相中等以上并且是高收入者或中等以上收入的公务员,那么这个可以用下图表示女孩的决策逻辑:
1.2 case2:招聘面试
也就是说,决策树的简单策略就是,好比公司招聘面试过程中筛选一个人的简历,如果你的条件相当好比如说某985/211重点大学博士毕业,那么二话不说,直接叫过来面试,如果非重点大学毕业,但实际项目经验丰富,那么也要考虑叫过来面试一下,即所谓具体情况具体分析、决策。
1.3 case3:高尔夫球
参考Wikipedia https://zh.wikipedia.org/wiki/决策树
小王是一家著名高尔夫俱乐部的经理。但是他被雇员数量问题搞得心情十分不好。某些天好像所有人都来玩高尔夫,以至于所有员工都忙的团团转还是应付不过来,而有些天不知道什么原因却一个人也不来,俱乐部为雇员数量浪费了不少资金。
小王的目的是通过下周天气预报寻找什么时候人们会打高尔夫,以适时调整雇员数量。因此首先他必须了解人们决定是否打球的原因。
在2周时间内我们得到以下记录:
天气状况有晴,云和雨;气温用华氏温度表示;相对湿度用百分比;还有有无风。当然还有顾客是不是在这些日子光顾俱乐部。最终他得到了14行5列的数据表格。
决策树模型就被建起来用于解决问题。
决策树是一个有向无环图。根结点代表所有数据。分类树算法可以通过变量outlook,找出最好地解释非独立变量play(打高尔夫的人)的方法。变量outlook的范畴被划分为以下三个组:
晴天,多云天和雨天。
我们得出第一个结论:如果天气是多云,人们总是选择玩高尔夫,而只有少数很着迷的甚至在雨天也会玩。
接下来我们把晴天组的分为两部分,我们发现顾客不喜欢湿度高于70%的天气。最终我们还发现,如果雨天还有风的话,就不会有人打了。
这就通过分类树给出了一个解决方案。小王(老板)在晴天,潮湿的天气或者刮风的雨天解雇了大部分员工,因为这种天气不会有人打高尔夫。而其他的天气会有很多人打高尔夫,因此可以雇用一些临时员工来工作。
2. 决策树必备概念:从比特化到信息熵
2.1 比特化
假设存在离散随机变量X,取值与概率如下:
取值 | 概率 |
---|---|
A | 1/4 |
B | 1/4 |
C | 1/4 |
D | 1/4 |
现在有一组由X变量组成的序列:BACADDCBAC……,如果现在希望将这个序列进行网络传输,我们可以将每种取值使用两个位进行编码:
取值 | 编码 |
---|---|
A | 00 |
B | 01 |
C | 10 |
D | 11 |
编码后,我们可以得到这样的序列:01001000111110010010……,而字符的平均编码长度为。
E = 2 ∗ 1 4 + 2 ∗ 1 4 + 2 ∗ 1 4 + 2 ∗ 1 4 = 2 E = 2 * \frac{1}{4} + 2 * \frac{1}{4}+ 2 * \frac{1}{4}+ 2 * \frac{1}{4} = 2 E=2∗41+2∗41+2∗41+2∗41=2
不过,如果当变量X的取值概率不同时,不同的编码方式可能会带来不同的编码长度。
取值 | 概率 |
---|---|
A | 1/2 |
B | 1/4 |
C | 1/8 |
D | 1/8 |
当然,我们依然可以采用之前的编码方式,这样,一个字符使用两个位进行编码。这样,平均编码长度为:
E = 2 ∗ 1 2 + 2 ∗ 1 4 + 2 ∗ 1 8 + 2 ∗ 1 8 = 2 E = 2 * \frac{1}{2} + 2 * \frac{1}{4}+ 2 * \frac{1}{8}+ 2 * \frac{1}{8} = 2 E=2∗21+2∗41+2∗81+2∗81=2
然而,考虑到X取值的不均衡性,我们可以更换编码方式,进而减少编码长度,降低网络传输量。
取值 | 编码 |
---|---|
A | 0 |
B | 10 |
C | 110 |
D | 111 |
因为A出现的概率最高,因此,我们将出现概率最高的,使用最短的位进行编码,而将出现概率低的C,D使用较长的位编码,这样就可以降低编码长度。我们使用不等长的编码方式时需要注意,任何一个短编码都不可以作为长编码的前缀,否则就会造成混淆。
调整之后,每个字符编码的平均位数(编码长度)为:
E = 1 ∗ 1 2 + 2 ∗ 1 4 + 3 ∗ 1 8 + 3 ∗ 1 8 = 1.75 E = 1 * \frac{1}{2} + 2 * \frac{1}{4}+ 3 * \frac{1}{8}+ 3 * \frac{1}{8} = 1.75 E=1∗21+2∗41+3</