决策树(一):原理&熵&条件熵&信息增益

1.决策树思想:以信息增益作为指标,得出最高效的一种决策方案,可用于回归或者分类问题。【由if-else演化而来,后续可发展成机器学习中的随机森林算法】
2.决策树指标:
香农:消除随机不确定性的东西。
信息熵:定量表示(某种事物)随机不确定性的大小。
样本:假设一个人身上有四种属性,分别是年龄【青年,中年,老年】,是否有工作【有工作,没有工作】,是否有房【有房,没房】,信用等级【非常好,好,一般好】;
现在样本中有15个人,他们四种属性的值不完全相同,相应的,其中的一人去银行贷款,银行是否会贷款给他的结果也不同。在这里,银行是否贷款给他作为这个问题的目标值。
在这个问题中,在我们不知道这个人的各个属性值时,银行是否同意借贷给他这一件事,对我们来说是完全随机不确定的,这时候信息熵是最大的。而根据样本我们可以得出总的信息熵【样本中15个人中6不同意,9同意】
信息熵公式:H(D)=- sump(xi)*log(p(xi)): 【对数底随便取,一般取2】
该问题中总的信息熵为 H(D)=  -(6/15*log(6/15) +9/15*log(9/15));
现在已经知道总的信息熵,下一步做什么呢?
对于这个问题,我们想要知道的是最终银行会不会同意借贷给某个人(目标值),(假设)因为银行是根据这个人的四个属性来决定是否同意,但我们不知道银行根据什么样的规则来选择,银行的选择方法在我们看来就是一个“黑箱”,那么我们如何找到哪个最高效的决策路径呢?所谓的最高效指的是知道尽量少个数的特征得出目标值。观察样本后我们发现通过先后决策“是否有房”和“是否有工作”这两个特征就足以得到样本中对应的目标值。如果先后决策“年龄”“信用等级”“是否有工作”,需要观察三个特征才能得出目标值。我们讨论这个问题的目的是要最高效地找出目标值,也就是通过知道某个人的某几个特征,从而推断他的借贷同意情况。这里的最高效指的是用最少的特征推断出目标值。而在决策树中,不同特征的决策顺序会影响能够推出目标值的最少特征数,所以问题就转变为找出最高效的决策顺序(选择特征顺序),所以通过观察样本数据我们得出结论:
不同的特征在决策中占据的”比重“是不一样的,有的对目标值影响大,有的影响小,那么问题就变成需要将特征对目标值的影响如何定量地表示出来。
 
这里引进信息增益和条件熵的概念。
1)条件熵:H(D|年龄);H(D|信用等级),….
条件熵计算公式:
①H(D|年龄)=5/15*H(D|青年)+5/15*H(D|中年)+5/15*H(D|老年)【样本中有青/中/老年分别有5个】
②计算各个分量【比如说青年中同意贷款有2个;中年中同意贷款有3个,老年中同意贷款有4个】
H(青年)= -(2/5*log(2/5)+3/5*log(3/5));
H(中年)= -(2/5*log(2/5)+3/5*log(3/5));
H(老年)= -(4/5*log(4/5)+1/5*log(1/5));
2)信息增益计算公式:g(D,年龄)=H(D)-H(D|年龄)
信息增益表示的是,知道了这个特征(信息),能够减少的目标值的不确定性。所以某一特征对应的信息增量越大,表示该特征对目标值的影响程度越大,在决策树中应该排在越前面。
通过比较不同特征的信息增量,可以得出决策树中不同特征的排列顺序,从而得出对于预测新样本的目标值最高效的决策树模型。
 
参考资料:
https://www.bilibili.com/video/BV1nt411r7tj?p=28, B站,作者:菜鸟程序员

 

posted @ 2020-04-29 22:51  Feynmania  阅读(922)  评论(0编辑  收藏  举报