从1维到6维,可视化多维数据策略概论!

点击上方关注,All in AI中国

作者:Dipanjan(DJ)Sarkar

学习有效的策略,利用图形框架的分层语法框架实现有效的数据可视化

从1维到6维,可视化多维数据策略概论!

介绍

可视化多维数据既是一门艺术,也是一门科学。由于我们的二维(2-D)渲染设备具有一定局限性,随着维度数量的增加,在两个以上的数据维度(属性或特征)上构建有效的可视化开始变得具有挑战性。我们在之前的一篇文章《多维数据的有效可视化艺术》中,https://towardsdatascience.com/the-art-of-effective-visualization-of-multi-dimensional-data-6c7202990c57

结合实例广泛地介绍了一些有效的多维数据可视化策略。在本文中,我们将介绍用于构建这些可视化的分层框架,称之为"图形语法"。在本文中,我们将探索分层语法图形框架背后的基本概念,并探索如何使用每个特定的分层组件来帮助我们在多维数据上构建有效的可视化。示例将以Python显示,但如果你感兴趣,可以轻松地在R中复制相同的内容!

动机

数据可视化和用数据讲故事一直是数据科学管道中最重要的阶段之一,涉及从数据中提取有意义的见解,无论数据或项目的复杂程度如何。举一个简单的例子,我们会在下面的图中描述十二个不同的数据集。

你能猜出这些截然不同的数据集之间的共同点吗?

从1维到6维,可视化多维数据策略概论!

Datasaurus Dozen - 这些不同的数据集中有哪些共同之处?

回答:所有数据集的摘要统计数据完全相同!

这是著名的Anscombe四重奏的有趣变体,许多人可能非常熟悉,如下图所示。

从1维到6维,可视化多维数据策略概论!

具有相同汇总统计的Anscombe四重奏不同数据集

这些演示的关键是:"不要盲目信任你的数据,并开始对你的数据进行建模"。汇总的统计数据总是具有欺骗性。在进行特征工程、构建统计、机器学习和深度学习模型之前,始终可视化和理解你的数据属性。

另一个非常重要的动机来源,特别是对于有效的数据可视化,可以从几个世纪以来的一些优秀的案例研究中得出,当时我们甚至没有计算机,更不用说Python或者R!第一个是约翰·斯诺(John Snow)著名的可视化图像,描绘了英国伦敦在1854年爆发的霍尔街霍乱!

从1维到6维,可视化多维数据策略概论!

可视化大范围的街道霍乱爆发,有助于找到疾病爆发的根本原因

你可以看到一个简单的手绘可视化图表帮助找到19世纪50年代宽街(Broad Street)爆发霍乱的根本原因。另一个有趣的可视化是弗洛伦斯·南丁格尔(Florence Nightingale)创建的,她是现代护理之母,对护理和统计学有着浓厚兴趣和深刻理解。

从1维到6维,可视化多维数据策略概论!

英国战地军队死亡原因 - 弗洛伦斯南丁格尔

上图描绘了19世纪50年代英国战地军队死亡原因的极地图。我们可以清楚地看到可视化绝对不是简单化,但它传达了正确的见解,清楚地显示了由于基于伤口或其他原因可预防的疾病而死亡的士兵的比例。这应该成为有效数据可视化的动力!

理解图形语法

要理解图形语法,我们需要理解语法的含义。下图简要概述了这两个方面:

从1维到6维,可视化多维数据策略概论!

基本上,图形语法是遵循分层方法以结构化方式描述和构建可视化或图形的框架。涉及多维数据的可视化通常具有多个组件或方面,并且利用这种分层图形语法有助于我们在数据、美学、规模、对象等方面描述和理解可视化中涉及的每个组件。

图形框架的原始语法是由Leland Wilkinson提出的,它详细地涵盖了有关有效数据可视化的所有主要方面。我推荐有兴趣的读者在他们有机会的时候阅读一下这本书。

从1维到6维,可视化多维数据策略概论!

https://www.springer.com/in/book/9780387245447

然而,我们将使用这个的变体,称为图形框架的分层语法,由着名的数据科学家和著名的R可视化软件包ggplot2的创建者Hadley Wickham提出。读者一定阐述他的名为"图形分层语法"的论文,其中详细介绍了他提出的图形分层语法,并讨论了他为R编程语言构建的开源实现框架ggplot2。

图形的分层语法

图形语法是一种工具,使我们能够简明地描述图形的组成部分。

http://vita.had.co.nz/papers/layered-grammar.html

Hadley的图形分层语法使用多个分层组件来描述任何图形或可视化。最值得注意的是,它与Wilkinson提出的原始图形语法有一些差异,如下图所示。

从1维到6维,可视化多维数据策略概论!

Wilkinson语法的组成部分(左)和分层语法(右)之间的映射

你可以清楚地看到语法中有各种组件可用于构建和描述可视化。我已经确定了七个这样的主要组件,它们真正帮助我在多维数据上构建有效的可视化。下图说明了语法中每个特定组件的一些细节。

从1维到6维,可视化多维数据策略概论!

图形语法的主要组成部分

我们使用金字塔架构来说明相同的组件层次结构。通常,为了构建或描述具有一个或多个维度的任何可视化,我们可以如下使用这些组件。

(1)数据Data:):始终从数据开始,确定要显示的维度。 (2)美学Aesthetics):根据数据维度,图中各种数据点的位置确定轴。此外,如果需要任何形式的编码,包括大小、形状、颜色等,这些都可用于绘制多个数据维度。(3)比例(Scale):我们是否需要扩展潜在值,使用特定比例来表示多个值或范围? (4)几何物体Geometric objects):这些通常被称为"geoms"。这将涵盖我们描绘可视化数据点的方式。它应该是点、条、线吗? (5)统计(Statistics):我们是否需要在可视化中显示一些统计度量,如中心趋势、扩展、置信区间的度量?(6)分面(Facets):我们是否需要根据特定的数据维度创建子图? (7)坐标系:可视化基于什么样的坐标系。它应该是笛卡儿还是极地?

现在我们将研究如何利用这个分层框架来为多维数据构建有效的数据可视化,并提供一些实际示例。

行动中的图形语法

我们现在将应用上一节中学到的概念用于一些实际数据。我们将在Python中构建所有可视化,但我建议人们查看R中的ggplot2包,这是迄今为止构建漂亮和干净的出版品质可视化的最鼓舞人心的框架之一。我们在Python中有一个ggplot框架,它是由Yhat公司构建的。但是,如果检查存储库,可能两年以来就没有推送过任何提交或更新,不幸的是,这会导致一些错误,特别是由于与更新版本的pandas存在向后不兼容问题。因此,在Python中模拟图形语法的真正分层语法,我们将使用另一个有趣的框架Pult9。

从1维到6维,可视化多维数据策略概论!

https://plotnine.readthedocs.io/en/stable/

Plotnine是一个开源的Python实现,用于基于ggplot2的图形框架的分层语法。因此,使用此分层语法中的先前指定的组件,我们可以构建有效的可视化。

从数据开始

我们总是首先加载并查看我们想要分析和可视化的数据集。我们将使用著名的mtcars数据集作为plotnine中预加载的数据集之一。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

mtcars数据集包括从1974年美国汽车趋势杂志中提取的数据,描述了32辆汽车(1973-74型号)的燃油消耗和汽车设计和性能的其他10个属性。每个属性的详细信息如上图所示。现在让我们构建一些可视化。

可视化二维(2-D)

现在,我们可以使用我们的图形框架分层语法中的一些组件(包括数据、维度、美学、几何)将数据最多可视化为二维。在这种情况下,我们选择点或散点图来表示我们的几何对象来表示每个数据点。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

从上面的可视化中我们可以清楚地看出,mpg与cat wt具有负相关性。

可视化三维(3D)

为了从我们的数据集中可视化三个维度,我们可以利用颜色(color)作为我们的美学组件之一来显示除了我们的其他两个维度之外的一个额外维度,如以下示例所示。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

在上面的可视化中,我们使用颜色美学以及其他两个数据维度(变量)将具有不同齿轮数的汽车描绘为单独的类别。很明显,平均齿轮数较少的汽车往往具有较高的重量和较低的重量。

可视化四维(4-D)

为了从我们的数据集中可视化四个维度,我们可以利用颜色(color)和大小(size)作为我们的两个美学组件,还有其他常规组件,其中包括geoms,data和scale。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

或者,我们也可以使用颜色(color)和分面(facets)来描绘四维而不是大小(size)的数据,如下例所示。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

分面(facets)绝对是构建有效数据可视化的最强大组件之一,如上图所示,我们可以清楚地看到具有较高转数的汽车具有较低的齿轮数和与之前的颜色(color)和大小(size)可视化相似的趋势。

可视化数据维度和统计信息

为了可视化数据维度和一些相关统计数据(如拟合线性模型),我们可以利用统计信息以及分层语法中的其他组件。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

这使我们能够根据统计数据组件的wt来查看mpg的线性模型趋势。

可视化五维(5-D)

要以五维方式显示数据,你现在就知道了这个问题!我们将利用美学的力量,包括颜色(color)、大小(size)、分面(facets)。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

在这里我们使用am作为分面(facets),其中0表示具有自动变速器的车辆,1表示具有手动变速器的车辆。该图表明,与具有自动变速器的汽车相比,具有手动变速器的汽车具有更高的齿轮数。大多数具有更多汽缸的汽车也具有自动变速器,其他见解与我们在之前的图中观察到的相似。

可视化六维(6-D)

为了可视化六维数据,我们可以在y轴上添加一个额外的分面(facets),同时在x轴上添加一个分面(facets),颜色(color)和大小(size)作为美学组件。

从1维到6维,可视化多维数据策略概论!

从1维到6维,可视化多维数据策略概论!

我们将传动(am)表示为0(自动)和1(手动)作为y轴上的分面(facets),将化油器(carb)的数量作为x轴上的分面(facets),除了使用我们的其他美学组件表示的其他的维度。上述可视化的一个有趣的见解是,具有更多齿轮的汽车具有手动变速器(am)和更多数量的化油器(carb)。你还注意到其他有趣的见解吗?

还能更高吗?

迫切的问题是,我们可以超过六个维度吗?好吧,我们越来越难以绕过二维渲染设备的局限性来可视化更多的数据维度。

从1维到6维,可视化多维数据策略概论!

一种方法是使用更多分面(facets)和子图。除此之外,如果你的数据集具有时间方面,还可以使用时间概念,如以下示例所示。

从1维到6维,可视化多维数据策略概论!

Hans Rosling著名的可视化全球人口、健康和经济指标

这描绘了Hans Rosling著名的描绘所有国家的全球人口、健康和各种经济指标的可视化。这也是在TED官方大会上提出的,建议大家观看!

这个视频可以为你提供如何利用图形分层语法可视化多维数据的良好视角。

视频加载中...

相关推荐