如今,大数据日益成为研究行业的重要研究目标。面对其高数据量、多维度与异构化的特点,以及分析方法思路的扩展,传统统计工具已经难以应对。
工欲善其事,必先利其器。众多新的软件分析工具作为深入大数据洞察研究的重要助力, 也成为数据科学家所必须掌握的知识技能。
然而,现实情况的复杂性决定了并不存在解决一切问题的终极工具。实际研究过程中,需要根据实际情况灵活选择最合适的工具(甚至多种工具组合使用),才能更好的完成研究探索。
为此,本文针对研究人员(非技术人员)的实际情况,介绍当前大数据研究涉及的一些主要工具软件(因为相关软件众多,只介绍常用的),并进一步阐述其应用特点和适合的场景,以便于研究人员能有的放矢的学习和使用。
【基础篇】
1、传统分析/商业统计
Excel、SPSS、SAS 这三者对于研究人员而言并不陌生。
- Excel 作为电子表格软件,适合简单统计(分组/求和等)需求,由于其方便好用,功能也能满足很多场景需要,所以实际成为研究人员最常用的软件工具。其缺点在于功能单一,且可处理数据规模小(这一点让很多研究人员尤为头疼)。这两年Excel在大数据方面(如地理可视化和网络关系分析)上也作出了一些增强,但应用能力有限。
SPSS(SPSS Statistics)和SAS作为商业统计软件,提供研究常用的经典统计分析(如回归、方差、因子、多变量分析等)处理。
- SPSS 轻量、易于使用,但功能相对较少,适合常规基本统计分析
- SAS 功能丰富而强大(包括绘图能力),且支持编程扩展其分析能力,适合复杂与高要求的统计性分析。
上述三个软件在面对大数据环境出现了各种不适,具体不再赘述。但这并不代表其没有使用价值。如果使用传统研究方法论分析大数据时,海量原始数据资源经过前期处理(如降维和统计汇总等)得到的中间研究结果,就很适合使用它们进行进一步研究。
2、数据挖掘
数据挖掘作为大数据应用的重要领域,在传统统计分析基础上,更强调提供机器学习的方法,关注高维空间下复杂数据关联关系和推演能力。代表是SPSS Modeler(注意不是SPSS Statistics,其前身为Clementine)
SPSS Modeler 的统计功能相对有限, 主要是提供面向商业挖掘的机器学习算法(决策树、神经元网络、分类、聚类和预测等)的实现。同时,其数据预处理和结果辅助分析方面也相当方便,这一点尤其适合商业环境下的快速挖掘。不过就处理能力而言,实际感觉难以应对亿级以上的数据规模。
另一个商业软件 Matlab 也能提供大量数据挖掘的算法,但其特性更关注科学与工程计算领域。而著名的开源数据挖掘软件Weka,功能较少,且数据预处理和结果分析也比较麻烦,更适合学术界或有数据预处理能力的使用者。
【中级篇】
1、通用大数据可视化分析
近两年来出现了许多面向大数据、具备可视化能力的分析工具,在商业研究领域,TableAU无疑是卓越代表。
TableAU 的优势主要在于支持多种大数据源/格式,众多的可视化图表类型,加上拖拽式的使用方式,上手快,非常适合研究员使用,能够涵盖大部分分析研究的场景。不过要注意,其并不能提供经典统计和机器学习算法支持, 因此其可以替代Excel, 但不能代替统计和数据挖掘软件。另外,就实际处理速度而言,感觉面对较大数据(实例超过3000万记录)时,并没有官方介绍的那么迅速。
2 、关系分析
关系分析是大数据环境下的一个新的分析热点(比如信息传播图、社交关系网等),其本质计算的是点之间的关联关系。相关工具中,适合数据研究人员的是一些可视化的轻量桌面型工具,最常用的是Gephi。
Gephi 是免费软件,擅长解决图网络分析的很多需求,其插件众多,功能强且易用。我们经常看到的各种社交关系/传播谱图, 很多都是基于其力导向图(Force directed graph)功能生成。但由于其由java编写,限制了处理性能(感觉处理超过10万节点/边时常陷入假死),如分析百万级节点(如微博热点传播路径)关系时,需先做平滑和剪枝处理。 而要处理更大规模(如亿级以上)的关系网络(如社交网络关系)数据,则需要专门的图关系数据库(如GraphLab/GraphX)来支撑了,其技术要求较高,此处不再介绍。
3、时空数据分析
当前很多软件(包括TableAU)都提供了时空数据的可视化分析功能。但就使用感受来看,其大都只适合较小规模(万级)的可视化展示分析,很少支持不同粒度的快速聚合探索。
如果要分析千万级以上的时空数据,比如新浪微博上亿用户发文的时间与地理分布(从省到街道多级粒度的探索)时,推荐使用 NanoCubes(http://www.nanocubes.net/)。该开源软件可在日常的办公电脑上提供对亿级时空数据的快速展示和多级实时钻取探索分析。下图是对芝加哥犯罪时间地点的分析,网站有更多的实时分析的演示例子
4、文本/非结构化分析
基于自然语言处理(NLP)的文本分析,在非结构化内容(如互联网/社交媒体/电商评论)大数据的分析方面(甚至调研开放题结果分析)有重要用途。其应用处理涉及分词、特征抽取、情感分析、多主题模型等众多内容。
由于实现难度与领域差异,当前市面上只有一些开源函数包或者云API(如BosonNLP)提供一些基础处理功能,尚未看到适合商业研究分析中文文本的集成化工具软件(如果有谁知道烦请通知我)。在这种情况下,各商业公司(如HCR)主要依靠内部技术实力自主研发适合业务所需的分析功能。
【高级篇】
前面介绍的各种大数据分析工具,可应对的数据都在亿级以下,也以结构化数据为主。当实际面临以下要求: 亿级以上/半实时性处理/非标准化复杂需求 ,通常就需要借助编程(甚至借助于Hadoop/Spark等分布式计算框架)来完成相关的分析。 如果能掌握相关的编程语言能力,那研究员的分析能力将如虎添翼。
当前适合大数据处理的编程语言,包括:
- R语言——最适合统计研究背景的人员学习,具有丰富的统计分析功能库以及可视化绘图函数可以直接调用。通过Hadoop-R更可支持处理百亿级别的数据。 相比SAS,其计算能力更强,可解决更复杂更大数据规模的问题。
- Python语言——最大的优势是在文本处理以及大数据量处理场景,且易于开发。在相关分析领域,Python代替R的势头越来越明显。
- Java语言——通用性编程语言,能力最全面,拥有最多的开源大数据处理资源(统计、机器学习、NLP等等)直接使用。也得到所有分布式计算框架(Hadoop/Spark)的支持。
前面的内容介绍了面向大数据研究的不同工具软件/语言的特点和适用场景。 这些工具能够极大增强研究员在大数据环境下的分析能力,但更重要的是研究员要发挥自身对业务的深入理解,从数据结果中洞察发现有深度的结果,这才是最有价值的。
本文作者:佚名
来源:51CTO