高维数据可视化方法梳理(学习笔记)
本文是我在学习北京大学公开课《数据可视化》共63讲过程中针对“高维数据可视化”章节所做的学习笔记整理。个人理解难免存在偏差或疏漏若有不准确之处恳请各位读者指正交流。引言在实际数据分析中我们常常面对三维以上的高维数据。然而人类视觉感知的天然上限是三维空间因此如何将高维数据映射到二维平面并尽可能保留原始结构成为可视化领域的核心挑战之一。针对这一问题课程中系统介绍了多种策略包括降维投影、维度嵌套、基于像素的方法以及辅助性的聚类分析等。以下逐一进行梳理。一、降维Dimensionality Reduction1. 基本思想降维的核心目标是将高维空间中的数据点映射到低维空间通常为二维或三维并在映射过程中尽可能多地保留原始数据中的变化信息。无论采用何种方法信息损失都不可避免关键在于我们优先保留哪种结构——全局方差、局部邻域还是两两距离。2. 主成分分析PCA主成分分析是一种线性降维方法它按照数据方差的从大到小顺序依次提取主成分。第一主成分指向方差最大的方向第二主成分与之正交且方差次之以此类推。该方法计算高效且解释性较强但局限性也明显——它只能捕捉线性结构若数据存在非线性关系PCA 的效果会大打折扣。3. 多维缩放MDS多维缩放的优化目标与 PCA 不同它希望在二维投影后数据点之间的两两距离尽可能与高维空间中的距离成正比。这一特性使其特别适合用于文本分析文档间语义差异的展示或产品属性分析例如汽车型号的加速度、重量、排气量等指标。实际应用时相似的物体会在平面上聚集成簇而离群点则往往代表具有独特特征的个体。4. 地形图式降维密度地形图在普通散点投影的基础上我们可以进一步引入“地形高度”来表征该位置的数据点密集程度。这种方式不仅继承了降维的分布展示能力还能直观反映数据的局部密度。一个典型应用是新闻主题可视化政治类与财经类新闻会在地形图上形成不同的“山峰”同一类主题聚集在同一区域山峰越高表示该主题的新闻数量越多。二、维度嵌套Dimensional Nesting在整理这部分内容时我最初的理解存在偏差。经仔细辨析后在此更正维度嵌套并不是简单地在三维坐标轴内部再画小坐标系而是一种递归的视觉编码策略在一个已有的坐标系中将某个轴上的每个刻度或数据点再次展开为新的子坐标系从而用“子图”形式编码额外的维度。例如最外层可能是一个三维空间x, y, z而每个位置点上放置的不是一个点而是一个小的二维或三维子图子图内部又编码了若干新变量。这样总维度 外层维度 内层子图维度。不过嵌套层次过多会导致视觉杂乱且子图尺寸过小难以辨识因此工程上通常仅做一层嵌套。另一种常见形式是在平面直角坐标系中沿 x 轴和 y 轴分别堆叠小坐标轴或小条形图本质上也是维度嵌套的变体。总体来看维度嵌套的适用场景是维度数量中等约 10~20且层次关系明确的数据优点是能保留各维度的原始取值缺点是扩展能力有限。三、基于像素的方法Pixel-based Visualization1. 基本做法基于像素的方法将屏幕划分为规整的单元格每个单元格对应一个数据项的某一维度并用颜色编码该维度的数值大小类似于热力图。通常每一列代表一个维度每一行代表一个数据项。2. 排列顺序的关键性在基于像素的可视化方法中数据项的排列顺序对观察结果有显著影响。通常优先考虑依据数据自身的固有属性进行排序。例如按时间先后排列便于观察序列的趋势或周期性变化按某个关键维度的数值大小排列有助于比较该维度上的高低分布。排序完成后具有相似取值的数据项在视觉上往往会自然汇聚成连续的色块区域这种“就近聚集”的现象本身就反映了一定的数据结构并不一定需要额外借助聚类算法来识别。当数据缺乏明确的排序依据或者我们希望综合多个维度的相似性来确定排列时可以借助聚类算法来辅助生成排列顺序。例如先计算各数据项之间的相似度如基于欧氏距离或相关系数再通过层次聚类等方法获得一种排列使相似的数据项在图上尽可能相邻。举例来说在分析汽车性能数据时若按“百公里加速时间”从短到长排序可以直观看出加速性能与价格或重量之间是否存在大致的对应关系若没有单一关键属性可供排序则可先对所有车辆的多个属性如加速、重量、排量、油耗等进行聚类再依据聚类结果决定排列顺序从而观察不同类别车辆在这些属性上的整体差异。总体而言优先利用数据自身顺序进行排列若无合适顺序再考虑借助聚类等方法来辅助确定排列。两者目标一致都是为了使数据中的结构在可视化中更易于被观察和理解。3. 与平行坐标的对比二者均以“一列对应一个维度”为基本结构但编码方式不同方法编码手段优势局限像素图用颜色深浅表示数值高低支持大数据量能发现局部异常与模式颜色区分度有限依赖合理排序平行坐标用折线在轴上的位置表示数值可精确读数便于观察维度间的相关性数据量大时线条严重重叠适合中低维度4. 多样化的布局变体除了规整的矩形网格像素图还有多种布局形式螺旋布局以某一数据点为中心相似对象排在内圈差异较大的排在外圈便于观察局部邻域。用户还可交互更换中心点。径向布局各维度沿不同方向放射状排列由内向外每一层代表一个数据项。这种方式有利于直观比较各维度的取值方向但存在明显缺陷——靠近圆心的数据项被严重挤压而靠外的数据项由于半径增大占用面积过大造成视觉不均匀。形状编码将每个数据项拆分为若干小方块如 12 个小块对应 12 个维度用二值颜色黑/白填充。该方法特别适合布尔型数据能快速识别异常时段或模式变化。四、聚类Clustering作为可视化辅助手段严格来说聚类本身并非可视化方法而是一种重要的数据预处理与分析手段用于辅助可视化呈现。聚类算法可基于欧氏距离、相关系数、信息熵等多种相似性度量也可采用层次聚类进行迭代式划分。聚类结果在可视化中有两项关键作用排序与筛选对像素图的行进行聚类排序使同类聚集形成更加清晰的块状模式交互与探索用户点击某一簇后高亮对应数据点便于深入分析子群体特。聚类方法有很多种可以基于相似性的度量如欧几里得距离或者是基于一些相关性来做一些计算也可以层次聚类方式进行迭代式划分可以引用各种各样的聚类方式从而使我们的可视化能够更好地呈现我们对应数据的内容。在实际工作流中聚类常与降维、像素图结合使用形成“先聚类、再投影或着色”的典型模式。五、历史视角划线图方法回顾可视化技术的发展我们不能忽视时代技术条件的限制。在彩色显示和高质量图形输出尚未普及的年代甚至只能依靠针式打印机或字符输出人们曾采用划线图的方法来编码数据对每个数据项从同一点出发绘制多条射线每条射线代表一个维度用射线的角度或长度表示该维度的取值。课程中给出的实例是美国五大湖区的地理信息数据五个维度。通过不同方向与长度的线段组合可以在黑白地图上形成独特的纹理从而区分不同区域的数据特征。再放大一点可以看到图的细节这种方法在今天已较少使用但它提醒我们可视化技术的发展始终与同时代的输出设备、计算能力和图形学基础密切相关。每一代方法都是在当时自由度下的最优选择。六、方法对比与适用场景小结方法适用场景维度数量核心优势主要局限PCA / MDS 降维探索整体结构与聚类高20直观可交互信息有损非线性保留差维度嵌套具有层次结构的数据中等10~20保留各维度原始值视觉易杂乱扩展性有限像素图大规模数据集找模式与异常高10数据密度高可发现局部模式颜色分辨有限依赖排列顺序平行坐标维度间相关性分析中低20读数精确关系直观线条重叠严重划线图黑白输出环境低维数据低10不依赖色彩表达能力有限结语高维数据的可视化并非追求“一次性呈现所有维度”而是在信息完整性与视觉可读性之间寻找平衡。不同的方法各有侧重——有的保留方差有的保留距离有的用颜色替代位置有的借助聚类增强结构。选择哪种方法最终取决于我们的分析目标与数据本身的特性。以上便是本次课程中关于高维数据可视化部分的学习整理。由于个人水平有限文中若有理解不当之处敬请指正不胜感激。笔记整理自公开课内容如有不当之处欢迎指正。课程来源本文根据北京大学公开课《数据可视化》共63讲的学习笔记整理而成课程链接 【公开课】北京大学数据可视化