机器学习-9(信息熵的简单介绍)

版权声明:成都软件测试交流群,339614248,欢迎你的加入 https://blog.csdn.net/louishu_hu/article/details/83896351

这一节介绍一下信息熵,这个跟热力学的熵是有区别的,所以现在让我们忘记热力学第二定律,我们不需要去联想。在这里我将按0基础的思维来讨论信息熵到底是什么

我们先把基础公式摘出来 H(X)=−∑xεXP(x)logP(x))

看公式,我们已经能感受到了,这是离散型的,每个特征值是独立的。在计算机里面,我们就以0,1来表示是,否。这将牵扯到后面的决策树算法的介绍,每一次yes和no的回答都是为了把数据集分类到它应当从属的子集里面去

那么熵是计算出来的什么呢?我们先带一点数据来看看

就从简单的只有一个维度来考量吧,举个例子:小区有100户人,10户没有小孩,20户有1个小孩,30户有2个小孩,40户有3个小孩,那么对应的概率就是p1=0.1,p2=0.2,p3=0.3,p4=0.4

OK,总的概率是1,这没问题。

按照数学期望的公式来验算的话,那么平均下来1户人家有的小孩数量就是0*0.1+1*0.2+2*0.3+3*0.4=2.0,也就是说一户人家平均有2个小孩。

我们来推算一下这个公式对不对 小孩总数是:20*1+30*2+40*3=200(个小孩)

2.0*100=200(个小孩)

OK,没毛病。。。。。。。。。。。。

熵呢?来计算一下 -H(X)=0.1*log(0.1)+0.2*log(0.2)+0.3*log(0.3)+0.4*log(0.4) = -0.1-0.14-0.157-0.159=0.238

这表示什么呢?在计算机我们叫比特

意思就是我们找到只有一个小孩的家庭要0.14比特,找到没小孩的0.1比特,值越大,分类更明确,信息增益越大

记住,信息熵,就是为了我们的通信服务的。。。最开始就是为了优化我们的通信的。。。而信息说白了,在计算机里面就是0,1

熵越低的,说明越稳定,熵越高的,就越不稳定,那么通过概率也可以看出,我们要找到有3个小孩的,平均下来要输入的信息量更大,那么假设我们以三个小孩的来划分,那么后面的子集就更小。这就是所谓的最优决策。每次都把最大的拿出来,一次次不停的切割我们的结果集

OK,我们直接贴代码

这段代码极其简单,没过多需要说明的,只需要理解一点,什么是期望。期望*熵代表的是什么,就可以理解决策树算法究竟是什么了。。。。。

总结就是:决策树算法就是每一次提问,都选择概率最大的问题来缩小我们的猜测

猜你喜欢

转载自blog.csdn.net/louishu_hu/article/details/83896351
今日推荐