1.2 数据分析
1.2.1 数据分析的概念
随着移动互联时代的到来,特别是虚拟现实、人工智能、物联网和车联网等科学技术的不断发展,使得当今世界对信息技术的依赖程度日渐加深,每天都会产生和存储海量的数据。数据来源多种多样,除了生产过程中的自动检测系统、传感器和科学仪器会产生大量的数据外,日常生活中的网上购物、预订车票、发微信、写微博等,也都会产生大量的数据。处理这些海量数据,并从中提取出有价值的信息的过程就是数据分析。
数据分析是指用适当的统计分析方法对收集来的大量原始数据进行分析,为提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据分析的目的是提取不易推断的信息并加以分析,一旦理解了这些信息,就能够对产生数据的系统的运行机制进行研究,从而对系统可能的响应和演变做出预测。
数据分析最初用作数据保护,现已发展成为数据建模的方法论。模型实际上是指将所研究的系统转化成数学形式,一旦建立了数学或逻辑模型,就能对系统的响应做出不同精度的预测。而模型的预测能力不仅取决于建模的质量,还取决于选择出供分析用的优质数据集的能力。因此,数据采集、数据提取和数据准备等预处理工作也属于数据分析的范畴,它们对最终结果有着重要的影响。
在数据分析中,理解数据的最好方法莫过于将其转变为可视化图形,从而传达出数字中蕴含(有时是隐藏)的信息。因此,数据分析可看成是模型和图形化的展示。根据模型可以预测所研究系统的响应,用已知输出结果的一个数据集对模型进行测试。这些数据不是用来生成模型的,而是用来检验系统能否重现实际观察到的输出,从而掌握模型的误差,了解其有效性和局限性。然后,将新模型与原来模型进行比较,如果新模型胜出,即可进行数据分析的最后一步——部署。部署阶段需要根据模型给出预测结果,实现相应的决策,同时还要防范模型预测到的潜在风险。
1.2.2 数据分析的过程
数据分析的过程可以用以下几步来描述:转换和处理原始数据,用可视化方式呈现数据,建模并做预测,其中每一步所起的作用对后面的步骤而言都是至关重要的。因此,数据分析可以概括为问题定义、数据采集、数据预处理、数据探索、数据可视化、预测模型的创建和选择、模型评估和部署几个阶段。
1. 问题定义
在数据分析前,首先需要明确数据分析的目标,即本次数据分析要研究的主要问题和预期的分析目标等,这称为问题定义。
只有深入探究作为研究对象的系统后,才有可能准确定义问题。事实上,对系统进行全面或详尽的研究有时会很复杂,一开始可能没有足够的信息。因此问题的定义,尤其是问题的规划,将是整个数据分析项目所遵循的指导方针。
问题定义会产生一些相关文档,在定义好问题并形成文档后,接下来就可以进入数据分析的项目规划环节。该环节要弄清楚高效完成数据分析项目需要哪些专业人士和资源,此时就需要寻找相关领域的专家和安装数据分析软件。因此,在项目规划过程中要组建起高效的数据分析团队。一般而言,这个团队应该是跨学科的,因为从不同角度研究数据有助于解决问题。
2. 数据采集
经过问题定义阶段后,在分析数据之前,首先要做的就是获取数据。数据选取一定要本着创建预测模型的目的,数据选取对数据分析的成功起着至关重要的作用。所采集的样本数据应尽可能多地反映实际情况,即能够描述系统对来自现实刺激的反应。如果选取了不当的数据,或者对不能很好地代表系统的数据集进行数据分析,得到的模型将会偏离作为研究对象的系统。例如,如果需要探究北京空气质量变化的趋势,就需要收集北京最近几年的空气质量数据、天气数据,甚至工厂环境状况数据、气体排放数据、重要日程数据等;如果需要分析影响公司销售的关键因素,就需要调用公司的历史销售数据、用户数据、广告投放数据等。
数据的获取方式有以下几种:
① 利用SQL语句直接从企业管理数据库中调取相关业务数据。例如,提取2017年度所有的销售数据和销量排名前20位的商品数据,提取华东、华南、西部地区用户的消费数据等。
② 到特定的网站上去下载一些科研机构、企业、政府开放的公开数据集。这些数据集通常比较完善,质量相对较高。当然这种方式也有一些缺陷,就是通常这些数据的发布比较滞后,但因其具有较高的客观性和权威性,故依然具有很大的价值。
③ 编写网页爬虫,去收集互联网上的数据。例如,可以通过爬虫获取淘宝网上商品的销售和评价信息、租房网站上某城市的租房信息、豆瓣网上电影和电影评分的列表信息、网易云音乐评论排行列表信息等。基于互联网爬取的数据,可以针对某个行业、某一类人群进行分析,是一种非常精准的市场调研和竞品分析的方式。
虽然数据采集不能获得所有需要的数据,但是可以通过有限的可获取的数据,提取出更多有用的信息。
3. 数据预处理
通过数据采集获得的数据大部分是不完整、不一致的“脏数据”,无法直接进行数据分析,若直接用会使分析结果差强人意。数据预处理就是使数据采集阶段中获得的原始数据,经过数据清洗和数据转换后,转变为“干净”的数据。使用这些“干净”的数据,才能获得更加精确的分析结果。
数据清洗是对数据重新审查和校验的过程,目的是删除重复信息、纠正存在的错误,检查数据一致性,处理无效值和缺失值等。例如,空气质量数据中有许多天的数据由于设备的原因没有监测到,有些数据是重复记录,还有一些数据是由于设备故障造成监测数据无效。那么,对于这些残缺的数据,是直接删除,还是用临近的值去补全,这些都是需要考虑的问题。
数据转换是将数据从一种表示形式转变为另一种表现形式的过程。如日期格式转换,数据计量单位转换等。
另外,还可以利用基本描述统计量的计算和基本统计图形的绘制来发现缺失值和异常值。
4. 数据探索和数据可视化
数据探索的本质是从图形或统计数字中搜寻数据,以发现数据中的模式、联系和关系。数据可视化是获得信息的最佳方式之一。通过可视化呈现数据的方式,不仅能快速抓住要点信息,而且,还可以揭示通过简单统计不能观察到的模式和结论。
数据探索包括初步的数据检验;确定数据类型,即是类别型数据,还是数值型数据;选择出最适合的定义模型的数据分析方法。
一般情况下,在这个阶段,除了细致研究用数据可视化方法得到的图表外,可能还包括以下一种或多种活动。
■ 总结数据。
■ 为数据分组。
■ 探索不同属性之间的关系。
■ 识别模式和趋势。
■ 建立回归模型。
■ 建立分类模型。
通常,数据分析需要总结与数据分析相关的各种表述。在总结过程中,在不损失重要信息的情况下,将数据浓缩为对系统的解释。
聚类这种数据分析方法用来找出由共同的属性所组成的组。
数据分析的另外一个重要步骤是关注识别数据中的关系、趋势和异常现象。为了找到这些信息,需要使用合适的工具,同时,还要分析可视化后得到的图像。
其他数据挖掘方法,如决策树或关联规则挖掘,则是自动从数据中抽取重要的事实或规则。这些方法可以与数据可视化配合使用,以便发现数据之间存在的各种关系。
5. 预测模型的创建和选择
预测模型是指用于预测的、用数学语言或公式来描述的事物间的数量关系。它在一定程度上揭示了事物间的内在规律性,预测时把它作为计算预测值的直接依据。在数据分析的预测模型的创建和选择阶段,要创建或选择合适的统计模型来预测某一个结果的概率。
具体来说,模型主要有以下两个方面的用途。
① 使用回归模型来预测系统所产生数据的值。
② 使用分类模型或聚类模型为新数据分类。
事实上,根据输出结果的类型,模型可分为以下3种。
① 分类模型:模型输出结果为类别型数据。
② 回归模型:模型输出结果为数值型数据。
③ 聚类模型:模型输出结果为描述型数据。
生成这些模型的简单方法包括线性回归、逻辑回归、分类、回归树和K-近邻算法。但是分析方法有许多种,每一种都有各自擅长处理和分析的特定的数据类型。每一种方法都能生成一种特定的模型,选取哪种方法与模型的自身特点有关。
有些模型输出的预测值与系统实际表现一致,这些模型的结构使得它们能够以一种简洁清晰的方式解释所研究的系统的某些特点。另外一些模型也能够给出正确的预测值,但是它们的结构为“黑箱”,对系统特点的解释能力有限。
6. 模型评估
模型评估阶段也就是测试阶段,该阶段是从整个数据分析的原始数据集中抽取出一部分用作验证集,并用验证集去评估使用先前采集的数据所创建的模型是否有效。
一般来说,用于建模的数据称为训练集,用于验证模型的数据称为验证集。
通过比较模型和实际系统的输出结果,就能评估错误率。使用不同的测试集,可以得出模型的有效性区间。实事上,预测结果只在一定范围内才有效,或因预测值取值范围而异,预测值和有效值之间存在不同层次的对应关系。
模型评估过程,不仅可以得到模型确切的有效程度,还可以比较出它与其他模型的不同之处。模型评估的技巧有许多,其中最著名的是交叉验证。它的基本操作是将训练集分成不同部分,每一部分轮流作为验证集,同时其余部分用作训练集。通过这种迭代的方式,可以获得最佳模型。
7. 部署
数据分析的最后一步是部署,旨在展示结果,也就是给出数据分析的结论。若应用场景为商业领域,部署过程将分析结果转换为对购买数据分析服务的客户有益的方案。若应用场景为科技领域,则将成果转换为设计方案或科技出版物。也就是说,部署过程基本上就是把数据分析得到的结果应用到实践中去。
数据分析的结果有多种部署方案,通常这个阶段也称为数据报告的撰写。数据报告的撰写应详细描述以下几点。
■ 分析结果。
■ 决策部署。
■ 风险分析。
■ 商业影响评估。
如果项目的产出包括生成预测模型,那么这些模型就可以以单独应用的形式进行部署或集成到其他软件中。
1.2.3 数据分析的作用
当前,无论是互联网企业,还是传统型企业,都需要数据分析。企业如果需要进行企业经营决策或者推出某种新型产品,就需要利用数据分析将一些凌乱的数据整合汇总,从中判断出具体方向。其实,在企业的经营分析中,数据分析具有三大作用。
① 现状分析。所谓现状有两层含义,一层含义是指已经发生的事情,另一层含义是指现在所发生的事情。通过对企业的基础周报或月报进行分析,可了解企业的整体运营情况,发现企业经营中的问题,了解企业的现状。
② 原因分析。如果通过现状分析,了解到企业存在着某种隐患后,就需要分析该隐患。了解该隐患存在的原因和它是如何产生的。
③ 预测分析。在分析了现状,也分析了原因后,就需要进行预测分析。通过现在所掌握的数据,来预测未来的发展趋势等。
其实,这3种作用就是分析过去企业整体运营情况,分析现在所存在的隐患,以及预测未来企业的发展趋势。
1.2.4 数据分析的常用工具
目前主流的数据分析语言有3种,分别为Python、R语言、MATLAB。其中,Python具有丰富且强大的库,它常被称为胶水语言,能够把其他语言制作的各种模块(尤其是C/C++)很轻松地连接在一起,是一门更易学、更严谨的程序设计语言。R语言是用于统计分析、绘图的语言和操作环境。它属于GNU系统的一个自由、免费、源代码开放的软件。MATLAB的作用是进行矩阵运算、绘制函数与数据、实现算法、创建用户界面和连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。
Python、R语言、MATLAB这3种语言均可以进行数据分析。表1-1从语言学习难易程度、使用场景、第三方支持、流行领域和软件成本5个方面比较了这3种数据分析工具。
表1-1 Python、R语言、MATLAB 3种数据分析工具的比较