在机器学习实战第三章中,为什么用熵衡量数据集划分的优劣?能不能具体讲下原因?
熵是表示数据随机程度的指标,熵越大,说明数据越随机,熵越小,说明数据越有序。
这里的熵是信息熵,信息熵是用来衡量不确定性的,信息熵越大对目标越不确定,反之越确定。
第一次看到这个概念我也很懵逼,后来慢慢理解了,给你举个例子吧:
(1)袋子中有10个红球,随机取一个,你猜球是什么颜色
p红球=1,p白球=0
H=-log(2,1)=0
非常确定一定是红球,熵为0
(2)袋子中有5个红球,5个白球,随机取一个,你猜球是什么颜色
p红球=0.5,p白球=0.5
H=-(0.5*log(2,0.5)+0.5*log(2,0.5))=1
没有把握确定球的颜色,熵为1
(3)袋子中有9个红球,1个白球,随机取一个,你猜什么颜色
p红球=0.9,p白球=0.1
H=-(0.9*log(2,0.9)+0.1*log(2,0.1))=0.1368027841+0.3321928095=0.46xxxx
有比较大的把握确定球的颜色
什么例子中可以看到,信息熵可以衡量不确定性,不确定性越大,熵越大。
机器学习的目标是根据数据得到正确结果或者比较正确的结果,要根据数据来消除不确定性,所以对数据划分时,数据熵越小,不确定性越小,效果就越好。
其实可以使用概率来代替的,熵是对概率的综合评分。