Python数据分析实战学习与分享(二)

学习的书籍:

Python Data Analytics
Python数据分析实战(尚未出版电子书)

1.4 数据分析过程

数据分析过程可以用以下几步来描述:转换和处理原始数据,以可视化方式呈现数据,建模做预测。因此,数据分析无外乎由几步组成,其中每一步所起的作用对后面几步而言都至关重要。因此数据分析几乎可以概括为由以下几个阶段组成的过程链:

 问题定义

 数据抽取

 数据准备——数据清洗

 数据准备——数据转换

 数据探索和可视化

 预测建模

 模型验证/测试

 部署——结果可视化和阐释

 部署——解决方案部署

数据分析各步骤的示意图

在这里插入图片描述

1.4.1 问题定义

采集原始数据前,数据分析过程实际上早已开始。实际上,数据分析总是始于要解决的问题,而这个问题需要事先定义。

只有深入探究作为研究对象的系统之后,才有可能准确定义问题:这个系统可能是一种机制、应用或是一般意义上的过程。通常研究工作是为了更好地理解系统的运行方法,尤其是为了理解其运行规则,因为这些规则有助于预测或选择(在知情的基础上进行选择)。

问题定义这一步及产生的相关文档(可交付成果),无论是对于科研还是商业问题都很重要,因为这两项能严格保证分析过程是朝着目标结果前进的。实际上,对系统进行全面或详尽的研究有时会很复杂,一开始可能没有足够的信息。因此问题的定义,尤其是问题的规划,将唯一决定整个数据分析项目所遵循的指导方针。

定义好问题并形成文档后,接下来就可以进入数据分析的项目规划环节。该环节要弄清楚高效完成数据分析项目需要哪些专业人士和资源。因此就得考虑解决方案相关领域的一些事项。你需要寻找各个领域的专家,安装数据分析软件。

因此,在项目规划过程中,应组建起高效的数据分析团队。通常这个团队应该是跨学科的,因为从不同角度研究数据有助于解决问题。因此,一个优秀的团队必然是成功完成数据分析工作的关键因素之一。

1.4.2 数据抽取

问题定义步骤完成之后,在分析数据前,首先要做的就是获取数据。数据的选取一定要本着创建预测模型的目的,数据选取对数据分析的成功起着至关重要的作用。所采集的样本数据必须尽可能多地反映实际情况,也就是能描述系统对来自现实刺激的反应。实际上,如果原始数据采集不当,即使数据量很大,这些数据描述的情境往往也是与现实相左或存在偏差。

因此,如果对选取不当的数据,或是对不能很好地代表系统的数据集进行数据分析,得到的模型将会偏离作为研究对象的系统。

数据的查找和检索往往要凭借一种直觉,超乎单纯的技术研究和数据抽取。该过程还要求对数据的内在特点和形式有细致入微的理解,而只有对问题的来源领域有丰富的经验和知识,才能做到这一点。

除了所需数据的质量和数量,另一个问题是使用最佳的数据源。

如果工作室环境为(技术或科学)实验室,数据源生成的数据是用来做实验的。这种情况下就很容易鉴别数据源的优劣,这时唯一要注意的就是实验过程的设置。

无论是对于哪个领域的应用,都不可能采用严格的实验方法来重建数据源所属的系统。很多领域的应用需要从周边环境搜寻数据,往往依赖外部实验数据,甚至常通过采访或调查来收集数据。这种情况下,寻找包含数据分析所需全部信息的优质数据源难度很大。这时往往需要从多种数据源搜集信息,以弥补缺陷,识别矛盾之处,使数据集尽可能具有普遍性。

当你想找些数据来用时,Web是个不错的起点。但Web中的大多数数据获取起来具有一定难度。实际上,不是所有的数据都是以文件或是数据库形式存在的,有些数据以这样或那样的格式存在于HTML页面中;有的内容很明确,有的则不然。为了获取网页中的内容,人们研究出了Web抓取(Web scraping)方法,通过识别网页中特定的HTML标签采集数据。有些软件就是专门用来抓取网页的。它们找到符合条件的标签,从中抽取目标数据。查找、抽取完成后,就得到了用于数据分析的数据。

1.4.3 数据准备

在数据分析的所有步骤中,数据准备虽然看上去不太可能出问题,但实际上,这一步需要投入更多的资源和时间才能完成。数据往往来自不同的数据源,有着不同的表现形式和格式。因此,在分析数据之前,所有这些数据都要处理成可用的形式。

数据准备阶段关注的是数据获取、清洗和规范化处理,以及把数据转换为优化过的,也就是准备好的形式,通常为表格形式,以便使用在规划阶段就定好的分析方法处理这些数据。

数据中存在的很多问题都必须解决,比如存在无效的、模棱两可的数据,值缺失,字段重复以及有些数据超出范围等。

1.4.4 数据探索和可视化

探索数据本质上是指从图形或统计数字中搜寻数据,以发现数据中的模式、联系和关系。数据可视化是突出显示可能的模式的最佳工具。

近年来,数据可视化发展迅猛,已成为一门真正的学科。实际上,专门用来呈现数据的技术有很多,从数据集中抽取最佳信息的可视化技术也不少。

数据探索包括初步检验数据,这对于理解采集到的数据的类型和含义很重要。再结合问题定义阶段所获得的信息,确定数据类型,这决定着选用哪种数据分析方法定义模型最合适。

通常,在这个阶段,除了细致研究用数据可视化方法得到的图表外,可能还包括以下一种或多种活动:

 总结数据

 为数据分组

 探索不同属性之间的关系

 识别模式和趋势

 建立回归模型

 建立分类模型

通常来讲,数据分析需要总结与研究数据相关的各种表述。总结(summarization)过程,在不损失重要信息的情况下,将数据浓缩为对系统的解释。

聚类这种数据分析方法用来找出由共同的属性所组成的组(grouping,分组)。

数据分析的另外一个重要步骤关注的是识别(identification)数据中的关系、趋势和异常现象。为了找到这些信息,需要使用合适的工具,同时还要分析可视化后得到的图像。

其他数据挖掘方法,比如决策树和关联规则挖掘,则是自动从数据中抽取重要的事实或规则。这些方法可以和数据可视化配合使用,以便发现数据之间存在的各种关系。

1.4.5 预测建模

数据分析的预测建模阶段,则要创建或选择合适的统计模型来预测某个结果的概率。

探索完数据后,就掌握了用来开发数学模型,为数据中所存在的关系编码的全部信息。这些模型有助于我们理解作为研究对象的系统。具体而言,模型主要有以下两个方面的用途:一是预测系统所产生的数据的值,使用回归模型;二是将新数据分类,使用分类模型或聚类模型。实际上,根据输出结果的类型,模型可分为以下3种。

 分类模型:模型输出结果为类别型。

 回归模型:模型输出结果为数值型。

 聚类模型:模型输出结果为描述型。

生成这些模型的简单方法包括线性回归、逻辑回归、分类、回归树和K-近邻算法。但是分析方法有多种,且每一种都有自己的特点,擅长处理和分析特定类型的数据。每一种方法都能生成一种特定的模型,选取哪种方法跟模型的自身特点有关。

有些模型输出的预测值与系统实际表现一致,这些模型的结构使得它们能以一种简洁清晰的方式解释我们所研究的系统的某些特点。另外一些模型也能给出正确的预测值,但是它们的结构为“黑箱”,对系统特点的解释能力有限。

1.4.6 模型验证

模型验证阶段也就是测试阶段,对数据分析很重要。在该阶段,会验证用先前采集的数据创建的模型是否有效。该阶段之所以重要,是因为直接与真实系统数据比较,可评估模型所生成的数据的有效性。但其实该阶段是从整个数据分析过程所使用的初始数据集中取一部分用于验证。

通常用于建模的数据称为训练集,用来验证模型的数据称为验证集。

通过比较模型和实际系统的输出结果,就能评估错误率。使用不同的测试集,就可以得出模型的有效性区间。实际上,预测结果只在一定范围内才有效,或因预测值取值范围而异,预测值和有效性之间存在不同层级的对应关系。

模型验证过程,不仅可以得到模型的确切有效程度(其形式为数值),还可以比较它跟其他模型有什么不同。模型验证技巧有不少,其中最著名的是交叉验证。它的基础操作是把训练集分成不同部分,每一部分轮流作为验证集,同时其余部分用作训练集。通过这种迭代的方式,可以得到最佳模型。

1.4.7 部署

数据分析的最后一步——部署,旨在展示结果,也就是给出数据分析的结论。若应用场景为商业领域,部署过程将分析结果转换为对购买数据分析服务的客户有益的方案。若应用场景为科技领域,则将成果转换为设计方案或科技出版物。也就是说,部署过程基本上就是把数据分析的结果应用于实践。

数据分析或挖掘的结果有多种部署方式。通常,数据分析师会在这个阶段为管理层或是客户撰写报告,从概念上描述数据分析结果。报告应上呈经理,以便他们读后做出相应决策,真正用分析结果指导实践。

数据分析师提交的报告通常应该详细论述以下4点:

 分析结果

 决策部署

 风险分析

 商业影响评估

如果项目的产出包括生成预测模型,那么这些模型就可以以单独应用的形式进行部署或集成到其他软件中。

1.5 定量和定性数据分析

数据分析过程都是以数据为中心,根据数据的特点,其实还可以进行细分。

如果所分析的数据有着严格的数值型或类别型结构,这种分析称为定量分析;如果数据要用自然语言来描述,则称为定性分析。

由于所处理的对象具有不同的特点,这两种数据分析方法也有所不同。

定量分析所处理的数据具有内在逻辑顺序或者能分成不同的类别。这样,数据就有了不同的结构。顺序、类别和结构可以提供更多信息,从而可以以更加严格的数学形式进一步处理数据。用这种数据产生的模型能做出定量预测,因此分析师也就可以得出更加客观的结论。

而定性分析处理的数据通常没有内在结构,至少结构没那么明显,这些数据既不是数值型也不是类别型。例如,适合定性分析研究的数据包括文本、视频和音频。分析这类数据时,往往需要根据实际情况,开发特殊方法来抽取信息。用这些信息创建的模型能做出定性预测,而数据分析师给出的结论可能还包括主观解释。从另一方面来讲,定性分析可用来探索更加复杂的系统,而且它所能得到的结论,严格的数学方法可能无法给出。定性分析通常用来研究社会现象或复杂结构等测量难度很大的系统。

图展示了这两种分析方法的不同之处

在这里插入图片描述

1.6 开放数据

为了满足日益增长的数据需求,人们把很多数据资源放到了网上。这些被称为开放数据(Open Data)的数据资源向任何有数据需求的人免费开放。

下面是网上的一些开放数据资源站点。更完整、详细的开放数据资源请见附录B。

 DataHub网站

 世界卫生组织

 Data.gov网站

 欧盟开放数据门户

 亚马逊AWS开放数据集

 Facebook Graph

 Healthdata.gov网站

 谷歌趋势

 谷歌金融

 谷歌图书 Ngrams项目

 UCI机器学习数据库

就开放数据而言,可以通过LOD云图了解网上都有哪些开放数据资源可用。从云图中能看到当前网上有哪些开放数据资源,以及这些资源之间的关系。

在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页