我是靠谱客的博主 壮观火,最近开发中收集的这篇文章主要介绍信息熵,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、信息熵概念

在信息论中,熵是对每条传播信息中含有的信息量的接受量的平均表示,它是不确定性的度量。在信息世界,熵越高,则能传输越多的信息(越稳定,不确定性越小),熵越低,则意味着传输的信息越少。

例:假设一个随机变量X,取三种可能值{displaystyle {begin{smallmatrix}x_{1},x_{2},x_{3}end{smallmatrix}}}{begin{smallmatrix}x_{1},x_{2},x_{3}end{smallmatrix}},概率分别为{displaystyle {begin{smallmatrix}{frac {1}{2}},{frac {1}{4}},{frac {1}{4}}end{smallmatrix}}}{begin{smallmatrix}{frac
{1}{2}},{frac
{1}{4}},{frac
{1}{4}}end{smallmatrix}},那么编码平均比特长度是:{displaystyle {begin{smallmatrix}{frac {1}{2}}times 1+{frac {1}{4}}times 2+{frac {1}{4}}times 2={frac {3}{2}}end{smallmatrix}}}{begin{smallmatrix}{frac
{1}{2}}times 1+{frac
{1}{4}}times 2+{frac
{1}{4}}times 2={frac
{3}{2}}end{smallmatrix}}。其熵为3/2。

其实质是:对随机变量的比特量和顺次发生概率相乘再总和的数学期望

二、定义

设S是s个数据样本的集合。假定类别属性具有m个不同的值:Ci(i=1,2,3......,m)。设si是Ci中的样本数。对一个给定的样本,它的总信息熵为:


式中,Pi为任意样本属于Ci的概率,一般用si/s估计。


设一个属性A具有k个不同的值{a1,a2,a3......ak}.利用属性A将集合S划分为K个子集{S1,S2,......Sk},其中Sj包含了集合S中属性A取aj值的样本。若选择属性A为测试属性,则这些子集就是从集合S的节点生长出来的 新的叶节点。设Sj中类别为Cj的样本数,则根据属性A划分样本的信息熵值是:


是子集sj中类别为Ci的样本概率。

最后,用属性A划分样本集S后所得的信息增益(Gain)为:


E(A)代表属性A对于分类提供的信息的大小,E(A)越大,则Gain(A)越小(即分类的不确定程度越小)。

三、应用

ID3决策树算法作为一个典型的决策树算法,其核心是在决策树的各级节点上都用信息增益作为判断标准进行属性的选择,使得在每个非叶节点上进行测试时,都能获得最大的类别分类增益,使得分类后数据集的熵最小。这样的处理方法使得树的平均深度较小,从而有效提高分类效率。


最后

以上就是壮观火为你收集整理的信息熵的全部内容,希望文章能够帮你解决信息熵所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部