要使用决策树,就必须计算不纯度,计算公式有熵和基尼不纯度
熵和基尼不纯度计算公式为:
[img]http://dl2.iteye.com/upload/attachment/0098/3496/7248ded5-a3b7-3f10-8e10-62dec99ef209.jpg[/img]
举个例子,假设有样本:
[table]
||A1|A2|
|B1|2|8|
|B2|6|4
[/table]
则开始的时候,熵值为:
E=-0.1*log2(0.1)-0.4*log2(0.4)-0.3*log2(0.3)-0.2*log2(0.2)=1.846
根据属性A划分样本,则两个子样本分别为:
[table]
||A1|
|B1|2|
|B2|6|
[/table]
[table]
||A2|
|B1|8|
|B2|4
[/table]
两个子样本的熵分别为0.811和0.92,所以划分后总的样本([color=darkred]要乘于子样本比例[/color]):(8/20)*0.811+(12/20)*0.92=0.88,同样可以计算按照属性B划分样本后样本熵值为:
[table]
||A1|A2|
|B1|2|8|
[/table]
子样本1,熵0.72
[table]
||A1|A2|
|B2|6|4
[/table]
子样本2,熵0.97
(10/20)*0.72+(10/20)*0.97=0.845
可以看出,根据属性B划分后,总体的熵值更小,即样本混乱度更小,故根据B划分效果更好
同样可以根据计算基尼不纯度公式计算。实际使用中,熵值对于混乱的惩罚更小,使用熵的情况更多。
熵和基尼不纯度计算公式为:
[img]http://dl2.iteye.com/upload/attachment/0098/3496/7248ded5-a3b7-3f10-8e10-62dec99ef209.jpg[/img]
举个例子,假设有样本:
[table]
||A1|A2|
|B1|2|8|
|B2|6|4
[/table]
则开始的时候,熵值为:
E=-0.1*log2(0.1)-0.4*log2(0.4)-0.3*log2(0.3)-0.2*log2(0.2)=1.846
根据属性A划分样本,则两个子样本分别为:
[table]
||A1|
|B1|2|
|B2|6|
[/table]
[table]
||A2|
|B1|8|
|B2|4
[/table]
两个子样本的熵分别为0.811和0.92,所以划分后总的样本([color=darkred]要乘于子样本比例[/color]):(8/20)*0.811+(12/20)*0.92=0.88,同样可以计算按照属性B划分样本后样本熵值为:
[table]
||A1|A2|
|B1|2|8|
[/table]
子样本1,熵0.72
[table]
||A1|A2|
|B2|6|4
[/table]
子样本2,熵0.97
(10/20)*0.72+(10/20)*0.97=0.845
可以看出,根据属性B划分后,总体的熵值更小,即样本混乱度更小,故根据B划分效果更好
同样可以根据计算基尼不纯度公式计算。实际使用中,熵值对于混乱的惩罚更小,使用熵的情况更多。