这是一个悲哀但真实的事实,即使付出了相当大的努力,大多数生成或收集的数据也从未得到任何严肃的分析。但从某种意义上说,这并不奇怪。因为做数据科学一直都很难。即使是专家级的数据科学家通常也要花费大量的时间来争论代码和数据,以进行任何特定的分析。
我自己使用计算机处理数据已经超过三分之一个世纪了。随着时间的推移,我的工具和方法逐渐进化。但是这周释放属于Wolfram | Alpha职业一些戏剧性的事情发生了,它将永远改变我处理数据的方式。
关键思想是自动化。Wolfram | Alpha Pro中的概念是,我应该能够以任何原始形式获取数据,并将其放入Wolfram | Alpha Pro中。然后Wolfram | Alpha Pro会自动进行一系列分析,然后给我一份关于我的数据的组织良好的报告。如果我的数据不是太大,这一切都会在几秒钟内发生。
令我惊讶的是,它真的有效。我有各种各样的数据:测量数据、商业报告、个人分析等等。我已经把它输入到Wolfram|Alpha Pro。Wolfram|Alpha Pro已经向我展示了可视化和分析,告诉我关于数据的各种有用的东西。
在过去,当我真的很有动力的时候,我会在这里或那里收集一些数据,读入其中数学软件,并使用一些强大的工具进行分析。但令人兴奋的是,Wolfram|Alpha Pro是如此自动。我可以心血来潮地输入我的数据,并期望看到一些有用的结果。
它的基本思想非常符合Wolfram|Alpha的整个核心任务:获取专家级的知识,并创建一个可以在需要时自动应用它的系统。在这里,专家级知识是一组优秀的数据科学家所拥有的方法的集合,而Wolfram|Alpha Pro所做的就是利用这些知识并使用它来分析您输入的任何数据。
我们面临着许多挑战,而我们仍处于解决所有这些挑战的早期阶段。但与整个Wolfram|Alpha技术堆栈,以及底层数学软件语言,我们能够从一个非常牢固的基础开始。在建造Wolfram | Alpha Pro的过程中,我们发明了各种新方法。
这个问题有几个方面。第一种方法是以任何一种结构良好的形式将数据导入Wolfram|Alpha。任何用过真实数据的人都知道,这往往不像听起来那么容易。
你认为你得到了按列排列的数据。但是那些奇怪的分隔符呢?那些标题呢?数据元素中出现的分隔符是什么?那些缺失的元素呢?从浏览器中复制时被剥离的那些行呢?那同一电子表格中的第二个表格呢?等等。
这有点像Wolfram|Alpha在理解自由形式的自然语言时所做的,以及它的所有变化和冗余。但结构化数据的语法是不同的,在某些方面也不那么宽容。正如在最初的Wolfram|Alpha开发中一样,我们所做的是采用了大量的示例语料库,并试图从我们所看到的推断出适当的语法——我们知道,当我们得到大量的实际查询时,我们将逐渐能够改进它。(不用说,我们使用Wolfram|Alpha Pro本身的分析功能来做大部分的分析。)
我们已经知道了数据中各个元素的位置。现在我们要算出它们是什么。这就是Wolfram|Alpha的语言能力至关重要的地方。因为它能让我们立刻理解数字和日期等所有奇怪的格式。不仅如此,它还能让我们识别单位和地名以及其他很多东西,并自动将它们转换成标准的可计算形式。
有时,在普通的Wolfram|Alpha中,当输入中给出了日期、单位或地点时,它可能是模糊的。但是当它被输入整列数据时,Wolfram|Alpha Pro通常可以自动解决这些歧义(“所有日期可能是美国风格”;“这些单位可能都是温度单位”;等等)。
让我们假设Wolfram|Alpha Pro知道一个数据表中的所有元素是什么——它们的“值”是什么。然后它必须开始弄清楚它们的“意思”。这个数字序列是否代表某种标签或坐标?或者只是随机分布的样本?这一货币价值序列是否代表了具有随机变化的资产价格?或者只是一系列不相关的货币数量?这两列实际上都是主要数据,还是其中一列只是另一列的排名?等等。
Wolfram|Alpha Pro有大量的算法和启发式方法来尝试推断它所给出的数据所代表的内容。这立刻让它走上正轨,看看它应该做什么样的可视化和分析。
总会有棘手的问题。什么时候在2D图中连接点是有意义的?什么时候应该使用柱状图、散点图、饼图等等?哪些地块的比例尺接近到可以合并?我们应该如何建立回归分析:我们应该尝试预测哪些变量?等等。
Wolfram | Alpha Pro继承自数学软件许多标准的统计分析.但它所做的是完全自动化这些。有时它会根据数据来选择哪种分析是有意义的。但通常它只是并行运行相当数量的可能分析,然后只报告有意义的分析。
在某种程度上,Wolfram|Alpha Pro的关键目标是能够获取任何一组数据,并能够从中“讲述一个故事”。能够展示数据中有趣或不寻常的地方,以及从中可以得出什么结论。
有一个例子是适合的。给定数据,Wolfram|Alpha Pro通常会尝试大量不同类型的功能形式。直线。多项式。指数。物流曲线。正弦曲线。等等。然后它有一个标准来决定哪些(如果有的话)是与原始数据合理匹配的。
Wolfram|Alpha Pro对概率分布做了同样的事情。它还使用各种统计方法,能够得出统计结论,是否排除统计假设等。
当它处理的数据不只是由数字组成时,事情就变得更加有趣了。
如果给出了日期和货币值,它就可以计算出货币转换和通胀调整。如果给定了地点,它可以在地图上画出来,但它也可以根据地点的属性(如人口或面积)进行标准化。如果给它任意重复的物体,它就会把它们当作网络中的节点。
对于任何给定的输入数据,Wolfram|Alpha Pro通常有大量的分析可以运行。但接下来的挑战是对结果进行修剪、组合和组织,以强调什么是重要的,并使它们尽可能容易被人类吸收——适当地添加严格但非专家可理解的文本摘要。
通常情况下,Wolfram|Alpha Pro会给出一个整体的摘要作为它的“默认报告”,然后有各种各样的按钮和下拉按钮,允许深入到许多变化或细节。
在我多年的数据工作中,我可能在某些时候生成了至少一些Wolfram|Alpha Pro显示的大多数类型的图、表和分析。但我很确定,在任何特定的情况下,我从未生成超过Wolfram|Alpha Pro将产生的一小部分。
重要的是,通过自动生成包含精心选择的条目的完整报告,Wolfram | Alpha Pro为我提供了一些东西,让我一眼就能了解数据中的内容。
毫无疑问,只要花足够的时间讨论代码和数据,我就可以重现结果的任何特定部分。但关键是,作为一个实际问题,只有在我非常清楚自己在寻找什么的情况下,我才会最终这么做。纯粹出于探索的目的,“一时兴起”做这件事需要太多时间。
但Wolfram | Alpha Pro改变了这一切。因为这是第一次,它让我能够立即得到一份关于我所有数据的完整报告。这意味着在实践中我最终会这样做。正如经常发生的情况一样,一个足够大的“定量”的变化会导致我们在实践中所做的事情发生质的变化。
现在,不用说,本周发布的Wolfram|Alpha Pro版本只是一个开始。还有许多额外的分析需要包括在内,还有许多具有特殊特性的新数据类型需要处理。
现在,Wolfram|Alpha Pro的设置只是为了处理相当小的数据集(数千行,少量列),它可以在典型的“web响应时间”几秒钟内生成有意义的报告。
架构或底层没有任何内容数学软件然而,基础设施限制了数据集如此之小。我希望将来我们能够使用Wolfram | Alpha Pro技术堆栈处理越来越大的数据集。
但是现在,我很高兴地看到,使用Wolfram|Alpha Pro从几乎任何一小块原始数据中获取有意义的见解变得非常容易。我相信,这是数据科学成就的民主化进程。这使得世界上产生的更多数据可以被用在有意义的地方。