基于信息熵的维度过滤方法的案例分析

之前我们已经探讨过如何使用交叉熵和条件熵计算信息增益,从而过滤出整个数据集中具有“代表性”的数据维度了。下面是来自论文《Information Guided Exploration of Scalar Values and Isocontours in Ensemble Datasets》的一些案例分析。

说明型案例:

如上图(c)所示,一共有10个等值线,你可以将其理解为10个变量组成的变量系统。首先计算出每个等值线(变量/维度)对应的信息增益。为了便于为了便于在信息引导下探索各个变量(数据维度),使用了如图(a)所示的信息增益曲线,让用户交互地选择变量并可视化其信息增益。在图(a)中,纵轴表示信息增益,横轴表示10个变量。图上的每个点对应一个数据维度,按其信息增益的降序从左到右排列。我们选择其中信息增益最大的5个变量,也就是图(a)从左到右前5个点,它们累积的信息增益如图(a)中部的垂直黑线表示的那样,是4.42,而全部10个变量的信息量只有4.91。也就是说,目前选中的5个变量包含了系统总信息量的90%。这5个选中的变量对应的等值线如图(b)所示。对比图(b)和(c),可以看到这五个等值线传递的不确定性信息几乎与所有等值线所示的相同。这对于具有大量变量的系统尤其有用,因为它有助于识别与不确定性分析相关的最重要变量。

典型应用案例1:

第一个案例的数据集来自材料科学的两种流体混合锁定-交换实验。简单地说,就是有两种密度不同的流体放在实验箱的两边,中间有挡板阻隔。然后抽掉挡板,看两种流体的混合过程。一共做了100次模拟实验,得到了100维的数据集。每个维度可以绘制一个等值线。上图(a)显示了10个数据维度绘制的信息增益曲线。上图(b)中显示了100个维度绘制的全部等值曲线。在图(a)中,我们选择信息增益对打的前7个数据维度,获得的总信息增益是2.6,这是关于系统的大约88.5%的信息。图(c)显示了这7个数据维度绘制的等值线。在图(a)中,选择信息增益最大的前15个维度,获得的总信息增益是2.824,是系统的信息的96%。这15个数据维度对应的等值线是图(d)。可以看出,图(c)和(d)中可以以较小的维度代表整个数据的空间布局。

在上面这个例子里,要计算100维数据集的信息增益,自然要用到100维的直方图。采用新的直方图计算方法,只需要使用一台PC机就做到了,配置是Intel Core i7-2600 quad-core CPU running at 3.40 GHz with 16 GB of RAM。

非典型应用案例2:

第二个数据集是是由威斯康星大学密尔沃基分校的大气科学计划生成的Great Lakes WRF集合数据。这是使用WRF-ARW预测模型在九大湖地区进行数量天气预报的九维数据。系统的总信息熵为5.66,通过选择前3个信息轮廓获得的信息量为3.44(约60%),而选择前6个信息增益为5.0(约88%)。
但是在这个例子里,数据维度数量较少,而且不像上个例子那样信息量高度集中在某些维度上。正如Top 3(图b)和Top 6(图c)的等值线图所示,所有九个维度的等值线(图8d)的完整结构信息无法通过等值线的子集正确表示。这意味着依据信息熵的维度过滤方法不是万能的,对于具有高不确定性和非常少量维度的数据集,还是要考虑所有维度进行分析。

典型应用案例3:

我们的第三个数据集是一个三维集合数据集,覆盖了从马萨诸塞湾到美国东海岸的科德角地区的区域[2,38,43]。该数据集分为53×90网格,具有16个深度级别,由25个集合模拟数据组成。该科学实验的重点是模拟所选区域的海洋生物多样性,并观察各种变量对生命形式的影响。我们使用信息熵理论来探索这个25维数据集中海洋温度变量对生命形式的影响。如上图所示,信息增益最大的维度对应的三维等值面如上图左下的蓝色所示。信息增益最大的前三个维度,占整个系统的60%的信息,绘制的三维等值面如上图左上所示。由于做这种三维渲染比较困难,尤其是要绘制多个三维等值面,它们之间的相互遮挡和杂乱令分析等值面变得非常有挑战。因此,在这项工作中提出的基于信息熵的维度过滤有助于我们理解结构变化,而不必经历渲染多个表面的麻烦。

总结:在论文《Information Guided Exploration of Scalar Values and Isocontours in Ensemble Datasets》所提出的基于信息熵进行维度过滤的方法,有助于用户为选择数据维度。对于具有大量数据维度的数据集尤其有效。但是目前的分析方法并没有给出被选择的维度是如何具体地影响总体的不确定性的。目前也很少有这样的文献,量化个体成员的不确定性贡献。

其实这篇文章中还有计算互信息,来计算某个数据维度X给定观测值x时,相对于其他数据维度的惊喜值(surprise)I1和可预测性(predicatability) I2。我猜作者是想通过这两个值来反映被选择的维度在整体中具有怎样的特征,然而这个特征不像上面的基于信息熵挑选数据维度那么直观,而且也不太好说明被选择的维度是如何具体地影响总体的不确定性的。有兴趣的同学可以直接看原论文。

模仿案例讨论:

上图是我们目前处理的数据集,是在chinavis2016挑战赛1的数据基础上统计的结果。其中一共36个维度(列),3000个样本(行)。每个维度的名称解释如下:

  • SITEID:网吧id
  • lng:经度
  • lat:纬度
  • NumOnNet: 该网吧上网人数统计
  • NumOnNet_OverTen:上网人数超过10人的网吧,超过为1没有超过为0
  • UnnormalAge:不正常上网年龄人数统计(七八十岁或几岁就在网吧上网的人员数目统计)
  • Under_age:未成年人数量统计:也就是没满18但会上网的人,
  • OvertimeOnNet:长时间在线上网的人数(超过正常人能连续上网的时间)
  • externalpeople:外来人口上网人数
  • MidnightOnNet:午夜上网人数
  • age18_35: 年龄18到35岁的人数
  • age36_68: 年龄36到68岁的人数
  • clock0_1: 凌晨0点到1点上网的人数
  • clock1_2:凌晨1点到2点上网的人数
  • ....
  • clock23_0: 晚上23点到24点上网的人数

可以看出这36个维度中有个别是线性相关的。例如午夜上网人数(通常所说的网吧包夜)等于晚上10点到第二天早上8点的上网人数。所以理论上这个数据集也可以使用PCA算法做降维。当然这个数据集也可以使用t-SNE算法降维到2D空间中看数据分布。不过这里我们要做的事情是用上文所述基于信息熵的维度过滤方法挑选出“最重要”的几个数据维度。为此,首先要计算每个数据维度的信息增益。其次还需要将数据以平行坐标系表示,以显示“当前所选的变量是否能代表整个数据的空间布局”。

一般的平行坐标系如上图所示,其中每个坐标轴代表一个维度。每一条细线代表一个样本。上图这个例子显示了90个样本在8个维度上的分布(https://echarts.baidu.com/examples/editor.html?c=parallel-aqi)。

但是要把我们的36维数据集放进平行坐标系的时候,遇到了一些问题。

其一,我们的考察对象是这36个维度的分布,如果要用平行坐标系显示,总不能让这36个维度做固定坐标轴吧?我们只能让这36个维度做变量。故而需要将维度/样本的概念颠倒一下,即需要将数据集中的维度当做平行坐标系中的样本,将数据集的样本当做平行坐标系的维度,也就是说需要一个有3000个坐标轴36条曲线的平行坐标系来显示这36个维度数据的分布。

其二,3000个坐标轴36条曲线的平行坐标系着实不好显示,一个可行的解决办法是将300个坐标轴上的数值范围都归一化到[0,1]范围内,从而将3000个坐标轴变成了一个轴。这样我们就能把3000个坐标轴36条曲线的平行坐标系转换成一个有36个曲线折线图。虽然这样变换会让整个平行坐标系上曲线分布产生较大变化,但是因为我们的目的只是为了看这36条曲线的子集的分布,是否近似于全体的分布,所以这样的变换不影响观察。

经过如上两步转换。就可以使用上文所述基于信息熵的维度过滤方法,过滤出一些具有代表性的数据维度,比如age36_68(年龄36到68岁的人数)等等。然后我们再拿这些数据维度,作为分析路径进行进一步的处理。

=========================================================

另外,维度和样本也是可以转置。将上面的二维表,转置一下,就成了有3000列(维度),36行(样本)的数据如下图所示。

其中每个维度代表一个网吧。把每个网吧当做一个变量,那么这3000个变量可以直接放到平行坐标系中显示:这是一个符合我们一般的观感的、有36个坐标轴3000个曲线平行坐标系。

当然,36个坐标轴屏幕也有可能显示不下。那么也可以用之前所说的方法将平行坐标转换成折线图来看。
然后使用上文所述基于信息熵的维度过滤方法,我们可以从这3000个曲线中过滤出一些最具代表性的维度,每个维度代表一家网吧。因为维度(网吧)很多,很有可能每一个维度的信息增益都不是很大。而信息增益最大的几个网吧,很有可能是偏离主流路线的网吧。故而根据平行坐标系查看挑选的维度是否可以很好地代表全体就更加重要了。在极端情况下,每个维度的信息增益都差不多,那就难以挑选网吧了。这也是这个方法的局限性。