首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从数据可视化到交互式数据分析

编者按:「交译所」FiTdesign翻译小组,旨在选择优质文章,定期翻译,方便大家奇文共赏。

注:本文是作者在参与纽约的Uber数据可视化大会上所做演讲的书面精炼版本。以下是作者原文。

高可视性的可视化项目主要关注两个目的:带来灵感和帮助解释。然而,可视化可以通过数据分析来增加对复杂问题的理解,这样的项目虽然不多见,但不代表不重要。

数据可视化的三个主要用途

我知道我这样总结可能存在严重简化的风险。但是,我发现根据主要目的(有意或无意)确定数据可视化的三类主要用途是很有用的,这也有助于我在本文后面阐明一些观点。

2. 解释现象。第二个用途是使用图形图表来说明一些复杂的想法,现象或过程。这是一个图形表现的领域:人类是视觉生物,所以一张图片有时胜过千言万语。多年来,数据新闻为通过数据解释复杂事物的艺术提供了很好的贡献(参见《纽约时报》和《华盛顿邮报》多年来所做的令人惊叹的工作)。同时这也属于教育领域,尤其是基于数字和图表的科学教育。这也是最近一个被称为“探索性解释”(“explorable explanations”)的美丽潮流的领域,由布雷特·维克托(Bret Victor)开创,并被尼基·凯斯(Nicky Case)等许多了不起的人推广开来。

3. 分析问题。第三个用途是从数据中提取信息,用来解释问题同时增加对一些有趣现象的理解。当然,解释性可视化也有助于人们理解某些事物。但这里的主要区别在于,在解释性的可视化中,作者已经知道了可视化的内容(在执行了一些分析之后),而在分析学中,可视化的主要价值是帮助人们第一时间理解数据。人们已经使用了一百万个名字来定义此活动。最新和最时尚的名字是数字科学,更具体地说是数据科学的一部分,称为“探索性数据分析”,这是几十年前伟大的约翰·图基(John Tukey)发明的术语。简单起见,我将其称为:数据分析,或者是视觉数据分析,甚至是交互式视觉数据分析,以强调是可以与之交互的图形表现(学术界和商界也称之为视觉分析)。

为何更多地谈论数据分析?

这篇文章,以及之前的演讲,旨在更好地定义可视化在数据分析中的角色,并激发更多关于可视化领域正在发生的事情的讨论,遗憾的事,这件事情并没有像其他事情那样引人注目。

但为什么要专注于分析?它有什么特别之处?

我的理由是,数据分析是一项基础的人类技术活动,它有可能帮助人们解决重要的社会和科学问题。更确切地说,我认为数据分析很重要,因为这项活动可以帮助人们提高对复杂现象的理解,从而帮助人们解决重要问题。这是一个间接但却重要的联系:如果我能更好地理解一个问题,那我找到更好问题解决方案的可能性就越大。

世界上不乏有趣而重要的问题,是我们希望通过数据分析能更好地理解的。以下是我个人经历中的一些案例。我在这里描述它们并不一定是因为它们是我们能够解决的最重要的问题,而是因为我对这两个案例很熟悉。

监测和认识医疗事故。在过去几年里,我的实验室一直与一家在纽约市很受欢迎的独立新闻工作室ProPublica合作。我们帮助他们筛选了来自Yelp的大量医学评论,以识别和理解人们与医生及其服务之间存在的问题。你要如何才能让数以百万计的评论变得有意义?如何发现可疑事件?如何识别值得关注的评论?事实证明,即使简单如一个全局的“分面搜索”界面,对这项任务也是非常有用的。我们开发了一个名为RevEx的简单工具,它使得我们的合作伙伴能够监测医疗事故上取得一些进展,并就他们的发现发表一些令人关注的文章。

RevEx。我们开发的一个交互式数据探索工具,帮助ProPublica的查尔斯·奥恩斯坦(Charles Ornstein)从Yelp的数百万条评论中筛选信息。

了解诈骗和诈骗者。这是我们最近与Agari公司建立的合作。他们的主要目标是追捕骗子并扰乱他们的活动。他们收集有关骗子活动极其有趣的数据,希望利用这些数据更好地保护个人和企业免受恶意攻击。这非常重要!与他们交谈,我更好地了解到诈骗对一些人造成了多么糟糕的影响。有些人的生活因为骗子的不法行为而被彻底毁掉了。这不仅仅是收件箱中收到垃圾邮件而已。

关于“理解”

你注意到了吗?当我们谈论数据分析问题时,我们经常将目标描述为“理解”某些东西。然后我们可以假设数据分析的主要目的是通过数据更好地理解某些东西。

现实,数据/统计模型。人类心理模型之间的关系。

这个关系是这样的:数据/模型是我们想要研究的一些现实的描述。人类对现实有一个心理模型,并使用数据/模型来研究它,以便可以更好地理解它。(这个概念值得整篇博文,我希望在不久的将来可以写一篇。)

交互式数据分析如何工作?

交互式数据分析主要以循环方式运行。你从某个松散指定的目标开始,将目标转换为一个或多个问题,组织和分析数据来回答这些问题,生产新的问题并重新开始。为了更清晰描述这个过程,我为这个过程梳理了以下步骤:

1.界定难题。每个项目都以难题陈述开头。你想解决什么难题?你的最终目标是什么?从数据分析中获得的更多理解将如何使你更接近你的目标?

2.生成问题。难题说明通常太高级且宽泛,无法直接转换为数据分析操作(这个问题经常被忽视且未被充分理解)。通常,需要将难题(隐式地,或者更好地,显式地)转换为许多数据分析问题。

3.收集,转换和熟悉数据。有些项目有可用的数据,而有些则需要一定程度的数据搜索或生成。在任何情况下,所有的项目都要求分析人员熟悉内容及其含义并执行多项转换,既要熟悉数据(例如:经常对数据进行切片,切割和聚合)又要为计划进行的分析做好准备。

4.从数据中创建模型。并非所有项目都需要这一步,但有些项目需要。当通过建立模型可以更容易地解答问题时,使用统计建模和机器学习的方法会很有用。虽然建模人员谈论的大部分内容只是预测,但模型对于探索和生成假设来说依然是非常强大的工具。可以用于此步骤的方法包括聚类、降维、简单回归和将文本转换为有意义的数字的各种NLP(自然语言处理)方法。

5.可视化数据和模型。这是眼睛能够观察数据的一步。现在,大多数人在考虑到这个阶段时会联想到花哨的图表,但是像表格和列表这种简单的表达方式对于很多问题来讲反而是非常合理的可视化表达。在这里,从数据转换和查询(或从某些模型)获得的结果被转换成我们的眼睛可以消化并能够理解的内容。这是我们所有人,数据可视化者热爱的一步。

6.诠释结果。一旦结果生成并以某种视觉形式呈现,就需要有人对其进行解释。这是至关重要的一步,也是经常被忽视的一步。展示屏幕背后有这样一个人,他需要理解所有这些彩色点和数字的含义。这是一项复杂的操作,包括以下步骤: 理解如何阅读图表,理解图表针对感兴趣的现象传达了什么信息,将问题的结果与问题已有的知识联系起来。注意,这里的诠释很大程度上受已有知识的影响。至少包括领域问题,数据转换过程,建模和可视化表达的知识。这是可视化和分析另一个经常被忽视的方面。

7.生成推论并引出更多问题。所有这些步骤最终会产生一些新的知识,并且在大多数情况下,还会产生额外的问题或假设。这是数据分析的一个有趣特性:它的结果不仅是答案还有可能是问题;当我们希望能引出更好更准确的问题。这一步骤有一个重要点是,可能会产生不正确的推论。因此并非所有的过程都必然带来积极的结果,也不是所有的分析都同样有效。

数据分析几个重要的方面

我想强调一下这个过程的几个重要方面:

1.这个过程不是连续有序的,而是高度迭代的。虽然我将这些步骤按顺序呈现,但是真正的过程根本就不是这样的。随着更多的问题、需求和限制被理解,人们总是从一个步骤跳到另一个步骤。也是高度迭代的一个过程。你通常会先提出一个最初的问题,通过分析得到一个答案,并在你完成此过程时,产生新的问题和需求,然后重新开始。

2.有些操作完全是人为的。你注意到了吗?这个过程中相当多的步骤完全是人为的(参考上图中的红框):界定难题,生成问题,解释结果,生成推论和新问题。这完全是人为操作,而非技术运作。这让人不禁想问:我们对人类如何用数据思考了解多少?我们如何扩展我们的知识,从而改进这个过程?

3.可视化只是流程的一小部分。对于我们这样的数据可视化人员来说,这是重要的观察结果。尽管我们非常喜欢可视化这一步,但是我们必须认识到,当可视化被用于数据分析时,它仅仅代表了多样化展示集的一小部分。这并不是说可视化不重要或不具有挑战性,但是了解全局更是至关重要。整个数据分析过程过程的有效性取决于上面的所有步骤,而不仅仅是视觉表现。

交互体现在哪里

你可能已经注意到,我到目前为止还没有提到交互。为什么?因为交互随处可见。每次你告诉你的电脑该做什么,你的电脑会返回一些信息给你,你就有了某种形式的交互。下面是我们在数据分析中通常会执行的操作:

·收集和转换数据;

·定义模型或查询数据;

·指定如何表达结果(和模型);

·浏览结果;

·合成并传达收集到的事实。

所有这些都需要某种形式的直接或间接交互。

直接操作与命令行交互

当我们谈论交互式数据分析时,先澄清什么是“交互式”很重要。是什么构成了“交互式”用户界面?对于许多人来说,交互式可视化只涉及WIMP接口,直接操作、单击、鼠标悬停等。然而命令行界面也是交互式的:用户告诉计算机要做什么,而计算机做出相应的反响与回应。改变的是交互“模态”,而不单只是对象是否可交互的。在我看来,我们应该讨论的是在数据分析系统中直接操作交互和命令行交互的优缺点。尽管直接操作的优点和缺点在其他地方已经详细讨论过(NN/g 研究团队出过一个很好的总结summary)但我们还没有很好地理解它在数据分析中的作用。大多数现有系统都依赖于命令行接口。这是为什么呢?是因为它们更有效还是因为我们还没有发明更好的接口?

交互式可视化数据分析的挑战

我想通过强调几个我认为与交互式数据分析相关性较大的挑战来总结本文。同时这也是我认为在未来几年数据分析方面需要取得更多进展的地方。

数据规范(思维数据/模型)

当我们通过计算机与数据交互时,需要做的第一件事就是将我们的问题和想法转换成计算机能够读取的规范(SQL就是一个很好的例子)。这是程序语言和格式发挥主要作用的地方。有些人可能认为,为了向计算机发出指令,必须学习某种编程语言,但在实践中,许多交互系统使用交互规范方法,将用户操作转换成计算机能够理解的语句,这对于用户操作来说更自然。交互式规范系统做得很好的一个是Tableau中使用的VizQL语言(VizQL language),它将用户的选择转换成系统能够理解的正式语句,并用于生成查询和适当的可视化表示。

译者注:

Tableau: 一家美国专门做交互式数据可视化软件的公司(公司官网:https://www.tableau.com/zh-cn)

我们应该期望人人都能成为程序员吗?

这里的一个相关问题是:“我们是否应该期望人人都能成为程序员并学习规范语言才能进行数据分析?”我个人认为,对这一点我们必须以更包容的态度来看,并认识到,尽管有很大一部分人可能会从数据分析工具中受益匪浅,但他们没有时间、资源或动力去学习如何使用规范化语言。因此,尽管我是R and Jupyter和panda组合等数据科学编程工具的超级粉丝,但我仍然不确定我们是否应该期望每个人都达到这种熟练程度,以便对数据进行有用的处理。Trifacta’s Wrangler和Open Refine是两个很好的例子,可以让人们更容易地访问负责的数据处理,它使人们无需编写任何代码即可执行大量的数据处理。

数据呈现(数据/模型眼睛)

一旦从查询和模型中获得结果,下一步是进行(可视化的)呈现,以便用户能够观察和理解。这是数据可视化的范围。尽管当大多数人听到“数据可视化”时,他们想到的是色彩丰富的花哨图形,但是期望简单的数据图表成为检验结果的有效方法完全是恰当的。我发现个有趣的点,我们使用“可视化”这个词来表示复杂的图形,但实际上简单的表格也和其他图表一样属于可视化。

多年来我发现,当我们谈论数据可视化时,我们经常认为选择使用哪种图形图表呈现是最重要的。然而,决定可视化的内容通常与决定如何可视化一样重要,甚至更重要。举个简单例子。有时,当信息内容表达的是百分比而不是绝对值时,图表能更好地传达问题。我认为,如果我们能够更好地理解和描述数据转换在可视化中所扮演的角色,那将是非常有用的。我的印象是,在很多情况下,我们往往过分强调图形化的感知,然而真正的价值点在数据内容部分。

“为了对数据分析有用,可视化需要多么花哨?”

这里要讨论的另外一个问题是:“为了对数据分析有用,可视化需要多么花哨?” 我对精心设计,时尚,充满吸引力的可视化项目十分喜爱。色彩及像素的美丽让我第一时间爱上可视化。但是,当我们的主要目标是数据分析时,我不确定这能产生多大价值。更准确地说,我确实认为美学在可视化中扮演着重要的角色,但我不确定在为数据可视化创造新的隐喻方面我们还需要多少创新。

根据我的经验(基于原型研究超过10年)大多数可视化问题可以通过一些图表来解决。很少情况下,需要你去想出一个全新的表达方式。像条形图、折线图、散点图、透视表等“图形化主力”真的很难被替代!

然而,这并不意味着进行有效地数据可视化是容易的! 真正困难的是,如何巧妙、有效和创新地去使用、调整和组合这些图表。这比人们愿意承认的要困难得多。在某种程度上,要想在可视化方面取得进展,创新和教育工作应该更多地关注深度,而不是广度。我们需要更多地了解如何能够更好地使用现有的方法,而不是寻找更多的隐喻和技术(尽管我们也需要不断创新,尝试一些疯狂的东西)。

数据认知(眼睛思维)

这一步至关重要,但往往被忽视。一旦将结果表达出来,人们需要能够解释并理解它们的含义。这是一个需要将若干知识连接到一起的复杂的认知过程。想想看:为了有效地对建模和可视化的结果进行推论,我们需要知道什么?至少,你需要能够理解数据表达和模型,理解它们与它们所代表的现实世界实体的联系,最后,也是最重要的,是如何与你头脑中已有的知识联系起来。让我们关注可视化和模型吧。

“人们能够理解和信任他们的可视化和模型吗?”

这里的重要问题是:“人们能够理解并信任他们的模型吗?”为了有效地解释可视化,您首先需要理解视觉隐喻,其次视觉隐喻本身也需要以尽可能不模糊/肯定的方式传达信息。不幸的是,并不是所有的视觉表现都是这样的。一个值得注意的例子是多维投影(使用诸如t-SNE和MDS之类的算法),它使用了某种直观的隐喻(距离远近代表相似性),但也模棱两可得令人难以接受。下面是一个投影的例子,显示了从IMDB评论中提取的单词之间的相似性。

t-SNE投影的例子

你看到这些展示的时候你学到了什么?当你碰巧学到了一些东西时…你能确定你所学到的东西代表了某种真实的现象,而不仅仅是统计上的巧合吗?

当我们看模型的解释时,我们面临一个更大的问题。机器学习方法使用非常复杂的程序将数据转换成更抽象的结构,但在这个过程中,我们完全丧失了理解其内容、质量和可信性的能力,建立“主题模型”。这是噩梦。该方法将文档集合输入,并返回作为单词集捕获的一组“主题”。问题是,大多数时候返回的内容根本没有任何意义。以下是我们实验室最近做的一个项目的例子。以下是从Vox的一组文章中摘录出来的一些主题:

主题建模生成的主题示例(使用LDA方法)

你觉得怎么样?是否有意义呢?你能从中提取出有用的东西吗? 凭心而论,这个方法返回了很多更有意义的主题,但是我选择了这种更戏剧化的方式说明这个问题。

你会怎么处理这个?这是一个重要的问题,不仅需要ML(Machine Learning)专家的合作,也需要和强感知能力的人合作,这样这些方法才能更有效地产生一个能够真正增强人类心智的人类技术系统。

建议

我有两组建议:一组针对从业者,一组针对研究人员。

给从业者的建议

1.多关注(更加相关的)问题。世界上不乏需要解决的相关问题,而数据分析可以发挥重要作用帮助取得进展。无论好坏,数据无处不在,大部分的物理世界都留下了数据痕迹,这可以帮助我们更好地理解某些事物。为那些想要解决重要问题的人工作或与他们合作。选择一个你喜欢的领域并尝试获得更好的理解与认知。

2.多一些工具,少一点可视化。如果我们想要提升数据分析和可视化的影响力量,并将其交给那些为我们解决重要问题的人(如医生,气候科学家,安全专家),我们需要更多地关注分析工具而不是可视化。构建下一个令人惊叹的图形可能很有趣、有启发性甚至在某种程度上会有用,但最终我认为我们需要为其他人构建工具,以帮助人们利用数据和可视化蕴含的全部力量。

3.公之于众。我所描述的其实已经发生了!甚至可能规模也很大,只是我们看不到。这些项目大多发生在私营企业的幕后,它们没有动力对外展示自己内部在做什么。但这种情况正在改变。如果你刚好在从事数据分析项目,请向我们展示是如何完成的! 但不要只展示最终产品,希望过程也能可见。让我们在哪个环节出问题了,以及是如何应对问题的。一起看看你们在项目中遇到的死胡同,也许大家都能从中学到一些东西。同样,如果你开发了一个工具,尽可能让更多人都用到。你永远不知道,某个人在某个地方可以使用这个工具做什么。也许做出了你无法想象的卓越事件。

给研究人员的建议

1.开发更好的规范方法。将人们头脑中的想法转换成机器能够理解的指令仍然是相当具有挑战性的。在编程语言方面已经取得了很大的进展,但是在不编码的情况下创建规范仍然非常具有挑战性。近年来发明的两个很好的交互式规范系统例子是:Tableau的可视化查询语言和Trifacta的数据转换交互方法。这解决了两个非常重要的需求,但也不乏其他需要交互式规范的情况。例如,规格化人们对文本集合能做什么仍然是非常具有挑战性的。

2.开发更多可解译的方法。正如我上面提到的,解释是一个很大的挑战。正如我上面提到的,解释是一个很大的挑战,尤其是当我们关注于旨在与人交互的ML(MachineLearning)方法时。我们首先需要更好地理解解译是如何工作的,以及解译与既存知识和专业知识之间的关系。我们还需要开发更容易理解更灵活的方法来接受来自人工代理的输入和反馈。

3.开发数据分析的“科学”。数据分析过程是由一系列复杂的认知过程构成的,我们对这些认知过程的理解并不十分透彻。什么因素能促使数据分析成功?计算工具的作用是什么?我们怎样才能避免陷阱、偏见、遗漏等等? 这真的很复杂!虽然认知科学的一些基础研究已经存在,但还缺少一个公认的模型可以指导设计师和工程师开发和评估复杂的交互系统进行数据分析。在这些方面取得进展将使我们能够更好地理解交互式数据分析的工作原理,并有希望能指引我们如何创建更好的工具来思考分析数据。

结语

在这篇短文中,我认为可视化从业者和研究人员应该用更广泛的视角来看待他们在数据科学领域中的所起的作用。可视化专家可以通过专注于支持人们分析他们的数据来帮助人们解决复杂和重要的社会问题。这可以通过(1)理解可视化是一个大而复杂的过程中的一个(重要的)步骤,(2)寻求与需要他们帮助的人合作,(3)开发工具让他们用数据做一些了不起的事情。我希望你能从这篇文章中得到启发,尽管这篇文章有点长。我们需要一大批像你这样的可视化爱好者来做一些对世界有影响的重要工作!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190904A03LRY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券