一、基于大数据的数据分析方法
基于大数据的数据分析方法的理论基础是数据挖掘和分布式计算原理。大数据具有海量、快速、多样化和有价值四个方面的重要特征,其海量特性使得数据分析时不可能用单台机器完成而是需要多台机器同时运算,也就是所谓的分布式运算。在大数据时代,大数据技术需要解决两个难题:一是海量数据在多台机器上的存储;二是解决如何对多台机器上存储的数据进行计算分析。大数据技术的基本原理还是聚类、分类、主题推荐等数据挖掘算法的内容,在基于大数据的数据分析方法中,有很多方法都是对原有算法的改进,将原来单机实现的算法改成多台机器的分布式计算。简单地说,基于大数据的数据分析方法就是分析工具不一样的数据分析方法,有的也加入了数理统计的思想。
二、大数据分析常用工具一览
1.Hadoop大数据生态平台
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
2.Spark,大数据分析的“瑞士军刀”
Spark 也是 Apache 基金会的开源项目,它由加州大学伯克利分校的实验室开发,是另外一种重要的分布式计算系统。它在 Hadoop 的基础上进行了一些架构上的改良。Spark 与 Hadoop 最大的不同点在于,Hadoop 使用硬盘来存储数据,而 Spark 使用内存来存储数据,因此 Spark 可以提供超过Hadoop100 倍的运算速度。但是,由于内存断电后数据会丢失,Spark 不能用于处理需要长期保存的数据。目前 Spark 完成了大部分的数据挖掘算法由单机到分布式的改造,并提供了较方便的数据分析可视化界面。
3.Storm,实时大数据处理工具
Storm 是 Twitter 主推的分布式计算系统,它由 BackType 团队开发,是 Apache 基金会的孵化项目。它在 Hadoop 的基础上提供了实时运算的特性,可以实时地处理大数据流。不同于 Hadoop 和Spark,Storm 不进行数据的收集和存储工作,它直接通过网络实时地接收数据并且实时地处理数据,然后直接通过网络实时地传回结果。
三、数理统计与数据挖掘的区别与联系
1. 数理统计与数据挖掘的联系
从两者的理论来源来看,它们都来源于统计基础理论,因此它们的很多方法在很多情况下都是同根同源的。例如,概率论和随机事件是统计学的核心理论之一,统计分析中的抽样估计需要应用该理论,而数据挖掘技术的朴素贝叶斯分类就是这些统计理论的发展和延伸。
有的时候两者的一些方法还会出现混淆的情况,例如,主成分分析和回归分析。从严格意义上讲,这两种分析方法都属于数理统计分析方法,但在数据挖掘实战应用中也常常会用到这种方式,从这个角度讲,主成分分析和回归分析也是数据挖掘商业实战中常用的一种分析技术和数据处理技术。
2.数理统计与数据挖掘的区别
更普遍的观点认为,数据挖掘是数理统计的延伸和发展,如果一定要加以区分,它们又有哪些区别呢?数据挖掘在如下几个方面与数理统计存在比较明显的差异。数理统计的基础之一就是概率论,在对数据进行数理统计分析时,分析人员常常需要对数据分布和变量间的关系作假设,确定用什么概率函数来描述变量间的关系,以及如何检验参数的统计显著性。但是,在数据挖掘的应用中,分析人员不需要对数据分布做任何假设,数据挖掘中的算法会自动寻找变量间的关系。因此,相对于海量、杂乱的数据,数据挖掘技术有明显的应用优势。
数理统计在预测中的应用常表现为一个或一组函数关系式,而数据挖掘在预测应用中的重点在于预测的结果,很多时候并不会从结果中产生明确的函数关系式,有时候甚至不知道到底是哪些变量在起作用,又是如何起作用的。最典型的例子就是“神经网络”挖掘技术,它里面的隐蔽层就是一个“黑箱”,没有人能在所有的情况下读懂里面的非线性函数是如何对自变量进行组合的。在实践应用中,这种情况常会让习惯数理统计公式的分析师或者业务人员感到困惑,这也确实影响了模型在实践应用中的可理解性和可接受度。
在实践应用中,数理统计常需要分析人员先作假设或判断,然后利用数据分析技术来验证该假设是否成立。但是,在数据挖掘中,分析人员并不需要对数据的内在关系做任何假设或判断,而是会让挖掘工具中的算法自动去寻找数据中隐藏的关系或规律。两者的思维方式并不相同,这给数据挖掘带来了更灵活、更宽广的思路和舞台。
虽然上面详细阐述了数理统计与数据挖掘的区别,但是在企业的实践应用中,我们不应该硬性地把两者割裂开来,其实它们也无法割裂,没有哪个分析师会说:“我只用数据挖掘技术来分析”或者“我只用数理统计技术来分析”。正确的思路和方法应该是:针对具体的业务分析需求,先确定分析思路,然后根据这个分析思路去挑选和匹配合适的分析算法、分析技术,而且一个具体的分析需求一般都会有两种以上不同的思路和算法可以去探索,最后可以根据验证的效果和资源匹配等一系列因素进行综合权衡,从而决定最终的思路、算法和解决方案。
四、大数据时代企业该如何布局,个人该如何选择?
数据分析师应对上述每种不同的数据分析方法都要了解,因为不同的数据分析方法适用的场景是不一样的,能解决的数据分析目标也是不一样的,例如生物行业用数理统计最多,电商行业用数据挖掘较多,当电商行业的数据量很大时,就要用基于大数据的数据挖掘算法了。在学习具体的数据分析方法时,主要要了解其使用的场景,当你在做具体的数据分析时就知道选择哪一种分析方法了。另外,在选择数据分析方法时,不要热衷于高深的方法,“不管白猫黑猫,抓住老鼠就是好猫”,要用最简单方法把问题解决,有的时候用最简单的描述性统计方法能解决问题,就不要用数据挖掘算法了。
对于是否使用大数据分析方法,这个需要看企业的性质和将来的发展方向,一般不是所有的企业都具有进行大数据分析的可能,企业管理者不应迷失在大数据面前,而应根据自己的实际业务确立商业目标,有选择地获取数据,然后进行分析。面对大数据时代的到来,国内的数据分析师们最需要做的是和企业的管理部一起,探讨如何给企业的现在和未来做一个好的规划,看自己是否具有大数据分析的可能,如果有,则如何实现从现有的小数据分析向大数据分析转型,从人才到数据的准备,这些都需要有一个充分的思考过程才能确定。