1.2 数据分析
数据分析是数学与计算机科学的交叉学科;其数学基础早在20世纪初期就已经确立,直到计算机的出现才让大规模数据分析的操作得以实现和推广。数据分析是用适当的统计方法,对收集来的大量数据进行分析;并将它们加以汇总和消化,以求最大化地发挥数据的价值。这样做的目的是从数据中提取有用信息,并且形成便于人们理解的结论。
简单的数据分析包括如加权求和、求平均、计算协方差、直方图分布等经典统计学操作。由于这些经典的操作依托于一致且标准的计算方式,许多数据分析软件(如微软的Excel、IBM的SPSS等)为了提高数据分析的效率,都默认集成了上述算法。
但是,一些复杂的数据分析需求,就要求我们从大量数据中寻找其内在规律。然而,探索数据内在的规律并没有十分统一和固定的标准算法。这类需求一般被称为数据挖掘问题,主要包括关联分析、聚类分析、分类分析、异常分析、特异群组分析和演变分析等。
从不同角度剖析数据的分析方法,主要包括结构化/非结构化数据分析、定性/定量数据分析,以及离线/在线数据分析。具体说明如下。
(1)结构化/非结构化数据分析。从被分析的数据类型角度,可以分为结构化/非结构化数据分析。结构化数据一般指的是行列数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。对比结构化数据,那些不方便用数据库的二维逻辑表来表现的数据,即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像、音频、视频信息等。对于结构化数据,可以使用数据库、Excel等表格处理软件实现对其的存储和分析。但是随着大数据时代的来临,更大的挑战来自对非结构化数据的分析。
(2)定性/定量数据分析。从数据分析的结果类型角度,可以分为定性分析与定量分析。定性分析一般不需要给出具体的数值结果,而是需要将数值结果映射到预先定义好的性质类别上,便于更多阅读数据报告的人理解。而定量数据分析则要求给出具体的数值,相对/绝对提升或者降低的百分比。定量分析的结果一般适合于供专业人士阅读和参考。
(3)离线/在线数据分析。从数据分析的时效性角度,可以分为离线数据分析与在线数据分析。离线数据分析主要负责处理较复杂和耗时的数据,一般构建在云计算平台之上,如开源的HDFS文件系统和MapReduce运算框架。Hadoop机群包含数百台乃至数千台服务器,存储了数PB乃至数十PB的数据,每天运行着成千上万个离线数据分析作业,每个作业处理几百MB到几百TB甚至更多的数据,运行时间为几分钟、几小时、几天甚至更长。在线数据分析也被称为联机分析处理,用来处理用户的在线请求,它对响应时间的要求比较高(通常不超过若干秒)。与离线数据分析相比,在线数据分析能够实时处理用户的请求,允许用户随时更改分析的约束和限制条件。