6.2 分析工具的演进

在20世纪80年代的时候,我刚开始从事分析工作,用户体验的友好性并不是描述或评价一个工具或系统的关键指标,所有分析工作都是在大型机中完成的。当时不仅需要直接通过程序代码来实现分析工作,而且需要使用非常晦涩的作业控制语言(Job Control Language,JCL)。任何使用过作业控制语言的人都会理解这种痛苦。

随着服务器和PC的普及,人们首先将旧的代码界面移植到了新的平台上。在当时的情况下,图形和输出是非常初级的。最初,柱状图是通过输入简单的字符来表示的,网格是通过破折号来表示的,输出物大多是以文本形式进行组织的。

随着时间的推移,新的图形界面逐渐发展起来了,用户能够通过点击来实现大部分操作,不再需要编写代码。实际上所有可用的商业分析工具都已经在20世纪90年代末实现了图形化界面。用户界面被不断地改进,加入了丰富的图形、虚拟的工作流图表以及特殊单点解决方案的应用程序。工作流图表是一种很好的新特性,因为它允许分析专家将某个流程中单独的步骤展示在一张多任务关联的视图中,这样就可以利用可视化的方法追踪处理流程中的每一个步骤。

随着工具本身的持续发展,工具的使用范围也逐渐扩大。现在的工具可以帮助分析专家管理分析的部署,管理分析服务和软件,并可以将代码从一种语言转换成另外一种语言。目前,已经存在许多可用的商业分析包。分析工具的领导者是SAS和SPSS,还有不少其他的分析工具可以使用,但许多分析工具仅仅能够分析某些特定的业务问题。此外,也有一些非常好用的开源分析工具,我们随后将会进行讨论。

6.2.1 图形化用户界面的崛起

正如我们刚才提到的,在20世纪90年代中期之前,进行统计分析的唯一方法就是编写代码。许多人,特别是传统守旧的分析人员,依然喜欢通过编写代码的方式来进行分析。然而,随着用户界面逐渐普及,分析专家们不用编写代码也可以高效率地进行分析了。今天的图形化用户界面可以帮助用户生成分析所需的各种代码。

分析专家们偏向于使用图形化界面还是编写代码,这个问题常引起激烈的争论。事实上,如果用户界面的功能足够丰富,并且在分析效率方面与编写代码相同甚至超过了编写代码,没有人会拒绝使用图形化用户界面,因为真正的分析专家只关心如何能够更快更高效地完成分析任务。另外,目前的软件工具不仅能帮助用户更快地生成分析代码,而且可以通过预先内置的分析解决方案来引导用户解决某些特定问题。

使用图形化用户界面的另外一个好处是,自动生成的代码几乎是没有错误的,并且经过了优化。这与完全人工编写代码不同,人工编写代码的错误率和性能几乎完全取决于编写者的水平。早期的用户界面非常难用,对于一个知道如何写好代码的人而言,编写代码的速度甚至比使用用户界面更快。新一代用户界面的自动化程度和效率已经提高了很多,它使得人们可以更加专注于需要使用的分析方法和分析内容本身,而不是拼命地编写代码。


不要做一个守旧的人

如今,许多用户界面在生成代码时已经快了很多,并且这些代码没有错误,且经过了优化。如果分析专家们给用户界面一个机会,特别是对于那些编写了几十年代码,又无法接受除了直接编写代码之外任何新事物的人而言,结果将是十分惊人的。工具可以使得分析专家更高效地工作,因为他们可以把更多时间花在分析方法上,而不是编写代码上。


图形化用户界面的一个巨大优势是可以自动生成代码,但这也是一个很大的风险。自动生成代码听上去非常不错,因为它可以快速地生成代码,但是它也可能会生成垃圾代码。这个问题我们将在第8章中进行讨论。如果用户的操作并不熟练,仅仅偶尔使用用户界面来生成代码,那么结果或许和他们所期望的完全不同。如果用户没有理解所生成代码的含义,那么用户将不能辨别代码的状态,这将会导致错误或者不准确的分析流程。

使用图形化用户界面的用户需要理解代码的含义,并且能够检查生成的代码是否符合自己的分析意图。用户通常希望在使用用户界面之后,仅仅需要点选少量选项就可以得到所期待的分析结果,然而,当看到工具所生成的代码之后,你常常会发现这和你想要的东西不完全一样。如今的用户界面帮助分析专家更有效率地工作,让他们将更多的时间花在分析上,而不是浪费在编写代码上。这些分析工具并不能够代替知识、天赋与努力。

6.2.2 单点解决方案的兴起

在过去的十年间,单点分析解决方案一直呈现加速发展的趋势。单点分析解决方案的软件包通常只针对某一具体且明确的问题。通常,这些单点分析解决方案会关注一系列相关联的业务问题,并处在分析工具套件中的顶层。

单点解决方案的例子有价格优化、欺诈检测、需求预测和其他类似的应用。单点解决方案通常基于一些分析工具套件,如SAS,并调用这些分析工具内部的基础功能。然而,从用户界面来看,这些单点分析解决方案仅仅针对某一明确的问题集合。这个单点解决方案的开发可能耗费了大量人年(劳动量单位,一个人在一年内完成的工作量)。与其自己重新构建一个新的解决方案,企业可以考虑购买一个单点解决方案作为替代,这能节约大量的金钱和时间。

例如,一个针对金融组织的反洗钱应用有一套完整的算法和业务规则来查找可疑的资金转移。这种工具的用户界面专注于分辨可疑的案例,并提供额外的必要信息来帮助进一步分析调查这个可疑案例。这种工具能够帮助企业快速地开始分析工作,而不用从头构建整个流程。

单点分析解决方案使得企业内特定的业务部门可以在日常管理工作中使用高级分析的成果。这些工具的安装、配置与初始化的分析参数设置通常都需要较高层次的专业知识。随着时间的推移,维护和使用这个解决方案所需要的知识门槛逐渐降低。这使得单点解决方案可以服务于更多的用户群体。请注意,这并不违反之前提到的不理解代码就无法使用工具的说法。创建和配置单点解决方案的目的之一就是指导并约束用户进行适当的操作。

相对于普通的业务用户,单点分析解决方案通常服务于更高级的用户。不过,这并不意味着这些用户具有分析专家所拥有的熟练的分析技能。这些解决方案一旦被专家配置好后,它们就能自动地执行许多任务,高级用户能够有效监控分析工具的输出,并确保一切工作正常有序。这种方案的优秀之处是让企业更广泛地使用分析成果,并带来了额外的可扩展性的提升。没有哪个企业拥有足够的分析专家来使用人工方式处理所有的分析需求,单点分析解决方案减轻了这种负担。


了解单点解决方案

单点分析解决方案是解决特定商业问题一种极好的方式。这些工具让更广泛的用户参与到分析流程中。实施一个成熟的、商业化的单点解决方案,其速度也远远快于创建一个自定义的解决方案。但是,当你看到这些解决方案的价格时,准备被震惊吧。


单点解决方案的一个很大缺点是它们相当昂贵。某些知名单点解决方案的企业授权许可可能需要1000万美元甚至更多。如果财务回报高于投入,那也没关系。但是,通常大多数企业既无法承受安装配置的时间和精力,也无法承受同时实施大量单点解决方案的投资成本。因此,单点解决方案通常以串行方式执行,执行完一个,再开始执行另一个。

在未来的几年里,单点解决方案将成为大数据分析的常用分析手段。某些单点解决方案可能正是某些企业现在就需要开始着手的。当计划实施单点解决方案时,有必要对市场上各种成熟方案进行研究比较,以了解你可以选择的范围。

6.2.3 开源的历史

开源软件已经出现了一段时间,能够通过下载供公众免费使用,此外,还可以获得开源软件的源代码,用户可以按照自己意愿开发自定义功能并添加到软件中。

有一些被广泛使用的、成功的开源软件。网络浏览器Firefox就是一个例子,还有Linux操作系统和Apache Web Server软件。之前我们说过了,因特网的高速发展产生了大量的开源活动和社区。网络世界产生了大量的创新,自然也包括了大量的开源创新。

目前看起来开源软件似乎已经涵盖了各个方面,有开源的数据库、开源的商业智能和报表工具、开源的数据整合工具、开源的办公套件等等。还有一些情况,如Linux和Apache,开源的工具集就算不是领导者,也已经成为相关领域内被大众认可的首选工具。但更多的情况下,开源软件并不是市场的主流,只是在一些特殊的领域内使用,Office办公套件就是这种情况的一个例子。通常来说,大型公司或成立很久的老牌公司,比初创公司或学术型组织更少地使用开源工具。

开源工具一个引人注目的特点是有成千上万的人为改善提高该工具的性能在持续地做着贡献。由于有大量的开发者在其空闲时间持续优化这个工具,如果发现了某个错误,它会被很快修复。大部分开源项目有正式的组织进行支持。在某些情况下,这些组织可能是完全自愿的;在另一些情况下,可能有非营利组织的全职员工在管理这些项目。通过捐赠,非营利组织可以提供工资,但目的并不是通过软件本身获取收益,仅仅是确保对开源项目的有效管理。开源项目一直对各个领域有着巨大影响,也包括分析领域。下面我们来介绍R项目。

针对统计计算的R项目

开源工具达到了世界先进分析水平的一个例子是针对统计计算的R开源项目,也被简称为“R”。R是免费的开源分析软件包,它直接与各种商业分析工具进行竞争并互相补充。R最初是从“S”派生出来的,S是十多年前为统计计算开发的一种早期语言。使用R命名的原因是英文字母S后是R,并且该项目主要开发者的名字也是以R开头(Robert Gentleman与Ross Ihaka)。〔8〕

R得到了快速发展并且被大量的分析专家使用,在高校和研究领域使用尤为普遍。在现今的企业环境中,如果有一个大型的分析专家团队,通常至少有几个成员在使用R。

虽然商业工具更加优秀,但是R的影响力仍然在不断扩大。迄今为止,R已经拥有了大量的用户,主要分布在学术界而不是大型企业内。R更多用于研发类任务,而不是针对海量数据的关键生产分析流程。这种情况可能随着时间发生改变,但至少目前是这样的。

R具有许多强大的功能。相对于其他的分析工具集,R是面向对象的。它能和常用的编程平台,比如C++和JAVA进行连接,这使得在应用程序中嵌入R变得可行。事实上,商业分析工具已经能在内部工具集中执行R程序,这是一个非常吸引人的特性。这个话题的详细讨论超出了本书的范围。

也许,R的最大优势在于,只要新的模型或分析方法开发完成,这个分析功能就会被人集成到R中。R开发并上线新功能的速度远远超过其他的商业软件,一想到这点,就会感觉特别爽。通常情况下,当某个算法被证明有市场需求后,商业工具的开发商才会考虑将其整合到商业工具中。然后他们将把这个算法加入开发计划,进行编码,把这项工程放入未来的发布版中,这个过程可能会耗费好几年。但是R就不同了,一旦有人认为某一个算法是有价值的,人们就会在R中开发并实现它。


你在使用R吗?

R是一个有前途的开源分析工具集。近些年来,R获得了长足的发展并被广泛使用。R有自己的优势和缺点,并不是每一个组织或者组织中的任何问题都适合使用R。但无论如何,R总会有它自己的位置。


事实上,R是免费的,很多人非常看重这一点。然而,与其他的开源项目一样,有专门提供专有组件和服务的付费公司,这些公司能够帮助你实施或开发R程序,在某些情况下,它们拥有改进开源软件功能的组件。免费软件的一个消极方面是没有商业软件那样的支持。你可能或多或少地需要依靠自己去寻找答案,虽然有大型网络社区能寻找答案,但是并没有一个单独的个人或团队来负责提供支持。

R还有一个缺点是过于依靠编程。虽然R有一些图形化用户界面,但是很多用户仍然主要依靠编写代码。另外,R与类似的商业软件的接口还不够成熟。当然,随着时间推移和R的发展,这种情况可能会有所改变。

R的最大的劣势可能在于它的可扩展性。近期虽然有所改善,但是R仍然不具有其他商业软件和数据库那种级别的处理能力。R的基础软件运行在内存中而不是文件中,这意味着它仅能处理和机器可用内存相同大小的数据。即使一台非常昂贵的计算机,其内存总和也远远少于企业级数据集的处理需求,更别说大数据了。如果一个组织想要处理大数据,R可以是解决方案的一部分,但是由于R现今的地位,要成为解决方案的唯一组成部分还不现实。

越来越多的工具在开发R的连接包,包括一些商业分析软件。它会成为像Linux或Apache这样领先的产品吗?还是会继续保持小众,如开源办公套件那样?在专业分析领域,R未来会有什么样的地位与表现,这个问题只有时间才能回答。

6.2.4 数据可视化的历史

数据可视化和数据本身一样古老。最近它成为了一个行业,不少人以讨论、研究和分析可视化技术作为职业,如Edward Tufte,他在这个领域创作了很多本书,其中就包括经典的A visual Display of Quantitative Information。〔9〕

Charles Joseph Menard对1812年拿破仑军队在莫斯科被消灭的描述一直被认为是最好的可视化例子。〔10〕如果通过本页注释的链接去看他绘制的图片,你就能清楚地想象出这些部队的经历。

在分析的领域里,可视化涉及图表、图像和展示数据的表格。在电脑未出现的时代,图像是手工绘制的。电脑彻底改变了数据的可视化方法,创建可视化变得更容易了。我的第一台彩色打印机,连接在我的老式计算机上。它有一个小巧的彩色圆珠笔,打印纸看起来像是宽的收据纸,圆珠笔在纸面上移动生成要绘制的图形。我可以创建一些低解析度的基础柱状图,稍微复杂点的图形就不行了。

早期分析软件实际上相当巧妙地采用了键盘字符来创建图表,可能并不漂亮,但是确实把意思表达得很清楚。柱状图中的每一个柱体由x字符组成,如图6-1所示,饼图由一段线段、逗号和破折号组成,而表格则由破折号“——”和竖线“|”组成框架。

6.2 分析工具的演进 - 图1

图6-1 早期、初级的柱状图

等到桌面办公软件流行后,几乎任何人都可以做一个漂亮的、五颜六色的图表或曲线图,并具有完整的标签、图例和坐标轴。分析工具的绘图能力也在提升,远远超过了基于文本的简单绘图模式。

然而,直到近期,可视化大多还是静态的。桌面报告或电子制表工具创建的图表通常是是静态的,除非数据被更新。通常,更新是手动完成的。如今,可视化工具甚至实现了与图形进行交互分析,以新的强大的方式来探索与分析数据。

现代的可视化工具

可视化工具发展得如此迅速,以至于许多人并没有意识到它拥有的力量。Tableau、JMP、Advizor、Spotfire这些可视化分析工具帮助分析专家和业务用户创建各种分析图形,不仅能够清晰地描述出已发生的现象与事实,还提供了一种可视化的交互分析方式来发现新的事实。

今天的可视化工具,可以让多个选项卡内的图形和图表直接链接到基础数据。更重要的是,这些标签、图形和图表是互相关联的。例如,如果用户单击了东北地区的图形区域,所有其他图表将立刻进行调整,只显示东北地区的数据。

这些新的工具被认为是演示文稿和电子表格软件的“锦囊妙计”。一些可视化工具不仅具有类似电子表格程序的透视和数据处理能力,还具有超出演示程序的图表图形绘制能力。现在这些工具还增加了新的功能,如连接大型数据库、可视化交互分析、随意探索和下钻等。这让分析变得极为强大。

数据可视化的大前提是,只看大表或一组数字来确定趋势,但是,这对人类是相当困难的。通过恰当的可视化处理,观察趋势就变得容易多了。一些数据可视化图形,如社交网络图形,其传递的信息几乎无法用其他方式来进行理解或描述。

试想一下,试图向某人有效地解释各个国家的地理分布,但却没有一张地图在旁边作为参考。一旦你看到一张地图,你就能确切地知道这些国家的准确位置,以及它们之间的关联。如果不使用可视化图形而只用文字表达出相同的信息,就算使用非常多的文字解释,也很难达到可视化图形传达信息的清晰程度。


用图形说话

人类的大脑可以很精确地理解视觉输入。一个有效的可视化图片可以立刻真实地在你脑海中模仿出类似的画面。只看传统的电子表格或报告,你很难找到想要的内容,也很容易错过重要的发展趋势。图形会说话,很多时候一图胜千言。


模拟智能〔11〕是商业分析工具中还没有完全实现的一种新技术。模拟智能的概念是借用3D、《第二人生》等虚拟网上世界以及用于基因研究的先进的可视化工具背后的图形处理能力。然后,使用这些技术来提供一个可靠的、交互式的数据视图。有哪些方法可以在一个交互的3D环境中对数据进行处理并获得深入洞察?时间会告诉我们答案。

可视化确实可以使我们获得其他模式无法提供的深入洞察。分析专家现在可以使用这些工具进行数据探索和开发分析应用。一些分析专家还会使用一些专门用于图形和演示文稿的可视化工具。这些可视化工具比传统的制图工具更快、更可靠。另外,如果有人在演示过程中提出一个问题,他们能够在展示过程中下钻并立刻获得答案。没有这种工具前,他们常常需要绘制新的图表,并承诺在第二天上午发送出去。任何希望驾驭大数据的企业,都需要考虑向工具箱中添加可视化工具。

可视化对高级分析为什么如此重要

在第8章中,我们将详细讨论沟通和交付分析成果对于分析的重要性。分析专家们经常需要对非技术的业务人员解释复杂的分析结果。任何对完成这项任务有帮助的事物都是好事物。数据可视化就属于这一类型。

如果没有必要,为什么要描述清楚逻辑分析的所有细节?如果一个简单的收益或提升图表就可以告诉业务伙伴他真正想知道的所有的一切,那么参数估计、等分统计、模型评估统计等信息就是矫枉过正。细节需要备份,但业务伙伴不应考虑过多的技术细节,他们相信分析专家会处理好这些技术细节。

如果有一个决策树样式的可视化描述,那么没有多少人会愿意看很长的业务规则描述清单。如果想了解某个赌场或零售商店哪些区域最忙,一种选择是创建一堆数字表格,把它们摊在在桌上,尝试分析出其中的模式。你也可以简单地绘制一个赌场或零售商店的热点分布图,图形中的不同颜色代表不同的活跃程度,答案立即就会变得明显。


影响力,而不是漂亮

重要的是专注于可视化的影响力,让一个观点更容易地被看到和理解。可太多的人沉溺于使用绚丽的分析图形,仅仅因为他们可以这么做。事实上,简单才是最好的,除非有明确的需求,否则不应该使用过于绚丽或复杂的图形。


请注意,我们强调的不是图形本身。很多人经常使用过于复杂的图形,仅仅是因为他们可以这么做。实际上,一个不加任何分析内容的3D条形图看起来很华丽,但比2D条形图更难以阅读和理解。重点应该放在可视化的有效性与影响力上,即可以比其他方式更清楚地说明要点上。一个很漂亮但没有要点的图形只会减损需传递的信息,造成混乱。

有时候一个简单的表格就足够了。在某些情况下,一个合适的可视化内容会让客户对要点的理解程度提升好几个数量级。回想一下我们之前提到过的地图的例子。理解如何可视化数据与结果可以帮助分析专家更好、更有效、更成功地工作。可视化工具的影响才刚刚开始。这些工具未来将被更多地用于分析和交流结果。


新数据每一次都会胜过新的工具和方法

新的数据输入对模型的影响要远远大于新的工具或方法。在传统的分析流程中增加新的数据会显著提升分析效果,这比新工具和新方法的提升更多更明显。这就是为什么重要的是获取大数据,而不是简单地升级并处理你已有的数据。


最后要提醒读者,本章的重点是分析工具和方法的演进。对于分析的质量和效果,可用的新数据比工具和方法本身有更大影响力。例如,获得了以前不具备的客户浏览Web详细数据会显著提升倾向模型的预测效果,这种效果提升要远远大于逻辑回归或组合模型等具体算法的创新。工具的进步有助于获得最新的数据源,但是数据本身才是最重要的价值驱动因素。这就是为什么企业要不断收集和使用各类可用大数据源的根本原因。