决策树示例
一.算法
决策树在优化过程中,有3个经典的算法,分别是ID3,C4.5,和CART。后面的算法都是基于前面算法的一些不足进行改进的,这里用ID3算法。
二. 一个案例
大家可能赖床过,早上要不要赖床是一个问题。它取决于多个变量,下面就让我们看看小明的赖床习惯。
季节 | 时间是否过8点 | 风力情况 | 要不要赖床 |
---|---|---|---|
春天 | 否 | 微风 | 要 |
冬天 | 否 | 无风 | 要 |
秋天 | 是 | 微风 | 要 |
冬天 | 否 | 无风 | 要 |
夏天 | 否 | 微风 | 要 |
冬天 | 是 | 微风 | 要 |
冬天 | 否 | 大风 | 要 |
冬天 | 是 | 无风 | 要 |
春天 | 是 | 无风 | 不要 |
夏天 | 是 | 大风 | 不要 |
夏天 | 否 | 大风 | 不要 |
秋天 | 是 | 微风 | 不要 |
我们随机抽了一年中12天小明的赖床情况。现在我们可以根据这些数据来构建一颗决策树。可以发现,数据中有三个属性会影响到最终的结果,分别是,季节,时间是否过8点,风力情况。
要构建一颗决策树,首先我们要找到它的根,我们需要计算每一个属性的信息熵。
从数据我们可以知道,12天中,有赖床为8天,不赖床为4天。
p(赖床)=8/12
p(不赖床)=4/12
分裂前的熵值为:(保留三位小数)
这次我把风力情况作为分支属性的分裂情况
“风力情况”中的“微风情况”中有4个正例,1个反例子,其熵值为: