有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?

高维数据可视化在Handbook of Data Visualization中有专门一章来表述。下面论述的内容全部来自由 Theus 撰写的手册第六章High-Dimensional Data Visualization(Theus, 2008)。下面这张图能够比较好地概括这一章,题主关心的主要是数据挖掘,所以可以着重看上面的三个分支。如果想看相关性,Mosaic 和 Trellis 很不错。平行坐标图 (Parallel Coordinate Plots) 比较适合聚类 (clustering),寻找极端值(outlier) 以及观察多个数据之间的结构。数据维数很高的时候也只能用平行坐标。Grand Tour 的优点同样在于挖掘结构。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第1张图片

第一种方法叫 Mosaic 图,适合于要研究的都是定性变量的情况。像下面这张图,四周是四个定性变量:水的硬度分三档;温度有高低;偏好有两种;是否用户又可以划开两块。每一个方块群都代表了控制两个变量以后样本的分布,方块的大小代表了具备对应特征的样本数量。四维或以下的数据用这种画法会很方便。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第2张图片

如果因变量是连续变量,也可以用马赛克图画。下面这张图是发病率的可视化,影响因素有三个:风险因子、防疫计划和抗生素注射,然后可以用红色占比来代表不同群体内部的发病率,图非常漂亮。这种图很适合在开挖之前用来得到一些定性的想法。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第3张图片

也可以把各种拟合优度、显著性之类的指标放进去,比如这张图:

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第4张图片

和 Mosaic 图相类似的有 Trellis 图,它的大概形状和 Mosaic 比较相似,都是先对几个定性变量取条件(一般是两个),然后在这两个变量的交叉格里表现剩余数据的形状。不过两个还是有不同,简单来说,Mosaic 图有一个递归的层次,看的时候先找到一个变量的取值,再找到下一个,再下一个,像剥洋葱一样。看 Trellis 图的时候我们就知道找网格了。像上面水资源那个,如果画 Trellis 图,应该是下面这张这样的。从中可以挖掘不少信息,比如说我们可以猜测,当水温低、水质软的时候,会员和偏好很有可能是独立的。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第5张图片

如果要用的数据都是连续变量,不好画,可以考虑把连续变量分割成几个区间再画,具体划多少个区间、每个画多大,都是要按照实际灵活调整的问题。下面是一张更漂亮的 Trellis 图,可视化了五维空间数据,其中数据点不同的颜色代表了不同的车轮数量。这里要处理的车重、MPG 等指标都可视为连续的,但灵活处理表现形式,无论是 Mosaic 图还是 Trellis 图都可以发挥出特别强大的功能。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第6张图片

平行坐标图在数据挖掘中也很常见。在平行坐标里,每个数据样本点都变成了一条折线,这条折线在不同坐标轴上取值就是原始坐标值。一般来看,平行坐标图是这样子的:

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第7张图片

在平行坐标图中,极端值会特别明显,像上图中左上第二条坐标轴:每加仑行使高速公路里程,可以很明显看到有几个 outlier。用平行坐标做聚类也比较方便,这和寻找极端值的原理是一致的。平行坐标轴处理高维数据也特别方便。如果数据有十几个纬度,而且都要画出来,可能就只有平行坐标能胜任了。如果数据点特别多,或者维度特别多,感觉图表已经无法清晰辨认时,可以做一点透明度处理,让高密度区域着色更浓,低密度区域透明度更高,这样就可以展示大量高维数据。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第8张图片

如果感觉太繁冗,可以只画出一些特定的指标,比如说最大值、最小值、中位数,等等。下图是分别画出集中指标的平行坐标图。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第9张图片

最后一种方法叫 Grand Tour。它的定义没有前两个那么直观,所谓 Grand Tour,是一族高维空间向低位空间的稠密投影,这个投影组的参数我们一般取成时间,也有取成其它一些参数的。像上面那张汽车数据图,就可以画出下面几种 Grand Tour,圈圈的颜色依然代表轮胎数量。Grand Tour 在挖掘中用得很多,在展示中很少用,它也比较适合处理聚类和分离问题。至于旅行的具体方向和变量选择,有很多种算法来选择。

有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?_第10张图片

最后,如果重点在可视化,其实还有蛮多其它方法来定性看数据的,比如最简单的散点图,虽然在高维情况效果不好,但通过切片、放缩等方法也可以起到一定作用。雷达图,还有类似的星型图,也可以展示高维数据,而且实现比较简单。类似的还有很多奇思妙想的方法,比如 Andrew‘s Curve,用一组三角函数的值来展示高维数据,或者 Chernoff 脸,用一张脸上五官的尺寸和形状来展示高维数据的特点。这些都可以百度到。如果不单纯是为了画图而是为了找降维算法,那就更多了,几十种肯定是有的... 建议找专业书看。最后,关于上面几种可视化方法的进一步信息,请参见手册原文,许多细节都需要算法来确定。

参考文献

Theus M. High-dimensional data visualization[M]//Handbook of data visualization. Springer Berlin Heidelberg, 2008: 151-178.

你可能感兴趣的:(有没有那种方式可以将高维数据进行可视化?比如保持数据结构不变将高维数据映射到低维空间?)