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

学习的书籍:

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

1.1数据分析

当今世界对信息技术的依赖程度日渐加深,每天都会产生和存储海量的数据。数据的来源多种多样——自动检测系统、传感器和科学仪器等。不知你有没有意识到,你每次从银行取钱、买东西、写博客、发微博也会产生新的数据。

什么是数据呢?数据实际上不同于信息,至少在形式上不同。对于没有任何形式可言的字节流,除了其数量、用词和发送的时间外,其他一无所知,一眼看上去,很难理解其本质。信息实际上是对数据集进行处理,从中提炼出可用于其他场合的结论,即它是处理数据后得到的结果。从原始数据中抽取信息的这个过程叫作数据分析。

数据分析的目的正是抽取不易推断的信息,而一旦理解了这些信息,就能对产生数据的系统的运行机制进行研究,从而对系统可能的响应和演变做出预测。

数据分析最初用作数据保护,现已发展成为数据建模的方法论,从而完成了到一门真正学科的蜕变。模型实际上是指将所研究的系统转化为数学形式。一旦建立数学或逻辑模型,对系统的响应能做出不同精度的预测,就可以预测在给定输入的情况下,系统会给出怎样的输出。这样看来,数据分析的目标不止于建模,更重要的是其预测能力。

模型的预测能力不仅取决于建模技术的质量,还取决于选择构建整个数据分析工作流所需的优质数据集的能力。因此数据搜寻、数据提取和数据准备等预处理工作也属于数据分析的范畴,它们对最终结果有重要影响。

前面一直在讲数据、数据的准备及数据处理。在数据分析的各个阶段,还有各种各样的数据可视化方法。无论是孤立地看数据,还是将其放到整个数据集来看,理解数据的最好方法莫过于将其绘制成可视化图形,从而传达出数字中蕴含(或隐藏)的信息。到目前为止,已经有很多可视化模式:类型多样的图表。

数据分析的产出为模型和图形化展示,据此可预测所研究系统的响应。随后进入测试阶段,用已知输出结果的一个数据集对模型进行测试。这些数据不是用来定义模型,而是用来检验系统能否重现实际观察到的输出,从而掌握模型的误差,了解其有效性和局限。

拿新模型的测试结果与既有模型进行对比便可知优劣。如果新模型胜出,即可进行数据分析的最后一步:部署。部署阶段需要根据模型给出的预测结果,实现相应的决策,同时还要防范模型预测到的潜在风险。

很多工作都离不开数据分析。了解数据分析及实际操作方法,对工作中做出可靠决策大有裨益。有了它,人们可以检验假说,加深对系统的理解。

1.2数据分析师的知识范畴

数据分析学科研究的问题面很广。数据分析过程要用到多种工具和方法,它们对计算、数学和统计思维要求较高。

因此,一名优秀的数据分析师必须具备多个学科的知识和实际应用能力。这些学科中有的是数据分析方法的基础,熟练掌握它们很有必要。根据应用领域、研究项目的不同,数据分析师可能还需要掌握其他相关学科的知识。总的来说,这些知识可以帮助分析师更好地理解研究对象以及需要什么样的数据。

通常,对于大的数据分析项目,最好组建一个由各个相关领域的专家组成的团队,他们要能在各自擅长的领域发挥出最大作用。对于小点的项目,一名优秀的分析师就能胜任,但是他必须善于识别数据分析过程中遇到的问题,知道解决问题需要哪些学科的知识和技能,并能及时学习这些学科,有时甚至需要向相关领域的专家请教。简言之,分析师不仅要知道怎么搜寻数据,更应该懂得怎么寻找处理数据的方法。

1.2.1 计算机科学

不论从事什么领域的数据分析工作,掌握计算机科学知识对分析师来说都是最基本的要求。只有具备良好的计算机科学知识及实际应用经验,才能熟练掌握数据分析必备工具。实际上,数据分析的各个步骤都离不开计算机技术,比如用于计算的软件(IDL、MATLAB等)和编程语言(C++、Java、Python等)。

要高效地处理随信息技术迅猛发展而产生的海量数据,就必须使用特定技能。数据研究和抽取,要求分析师掌握各种常见格式的处理技巧。数据通常以某种结构组织在一起,存储于文件或数据库表中,格式多样。常见的数据存储格式有XML、JSON、XLS、CSV等。很多应用都能处理这些格式的数据文件。从数据库中获取数据要稍微麻烦些,需要掌握SQL数据库查询语言,或使用专门为从某种数据库抽取数据而开发的软件。

此外,一些特定类型的数据研究任务中,分析师所能拿到的不是立刻就能用的干净数据,而是文本文件(文档、日志)或网页。需要的数据则来自这些文件中的图表、测量值、访客量或者HTML表格,而解析文件、抽取数据(数据抓取)需要专业知识。

因此,学习信息技术知识很有必要,只有这样才能掌握在当代计算机科学基础上发展起来的各种工具,比如软件和编程语言。数据分析和可视化离不开它们。

针对数据分析的各个阶段,从数据研究、数据挖掘到预测模型研究结果的部署,Python都有专门的库。

1.2.2 数学和统计学

数据分析涉及大量数学知识,数据处理和分析过程涉及的数学知识可能会很复杂。因此具备扎实的数学功底显得尤为重要,至少要能理解正在做的事。熟悉常用的统计学概念也很有必要,因为所有对数据进行的分析和解释都以这些概念为基础。如果说计算机科学提供的是数据分析工具,那么统计学提供的就是基础概念。

统计学为分析师提供了很多工具和方法,全部掌握它们需要多年的磨练。数据分析领域最常用到的统计技术有:

 贝叶斯方法

 回归

 聚类

用到这些方法时,会发现其中数学和统计学知识紧密结合,且对两者都有很高的要求。

1.2.3 机器学习和人工智能

数据分析领域最先进的工具之一就是机器学习方法。实际上,尽管数据可视化以及聚类和回归等技术对分析师发现有价值的信息有很大帮助,但在数据分析过程中,分析师经常需要查询数据集中的各种模式,这些步骤专业性很强。

机器学习这门学科所研究的正是如何把一系列步骤和算法结合起来,分析数据,识别数据中存在的模式,找出不同的簇,发现趋势,从数据中抽取有用信息用于数据分析,并实现整个过程的自动化。

机器学习日渐成为数据分析的基础工具,因此了解它(至少也要知道个大概)对数据分析工作的重要性不言而喻。

1.2.4 数据来源领域

数据来源领域(生物、物理、金融、材料试验和人口统计等)的知识也是非常重要的一块。实际上,分析师虽然受过统计学的专业训练,但也必须深入应用领域,记录原始数据,以便更好地理解数据生成过程。此外,数据不仅仅是干巴巴的字符串或数字,还是实际观测参数的表达式,更确切地说是其度量值。因此,对数据来源领域有深入的理解,能提升解释数据的能力。当然,即使是对乐意学习的分析师来说,学习特定领域的知识也是要下一番功夫的。因此最好能找到相关领域的专家,以便有问题时及时咨询。

1.3 理解数据的性质

数据分析所研究的对象自然是数据。在数据分析的各个阶段,数据都是主要关注对象。要分析、处理的原材料由数据构成。经过处理、分析数据后,最终可能会从中得到有用的信息。这些信息能增加对研究对象,也就是产生原始数据的系统理解。

1.3.1 数据到信息的转变

数据是对世界万物的记录。任何可以被测量或分类的事物都能用数据来表示。采集完数据后,可以对其进行研究和分析,以理解事物的性质。人们也常常借助它们进行预测,或者即使做不到预测,至少也能让推测更有根据。

1.3.2 信息到知识的转变

当信息转化为一组有助于更好地理解特定机制的规则时,信息便转化为了知识,因而可以用这些知识预测事件的演变。

1.3.3 数据的类型

数据可以分为两类:

 类别型(定类和定序)

 数值型(离散和连续)

类别型数据指可以被分成不同组或类别的值或观察结果。类别型数据有两种:定类(nominal)和定序(ordinal)。定类型变量的各类别没有内在的顺序,而定序型变量有预先指定的顺序。

数值型数据指通过测量得到的数值或观察结果。数值型数据有两种:离散型和连续型。离散值的个数是可数的,每个值都与其他值区别开来。相反,连续值产生于结果属于某一确定范围的测量或观察。

Python和数据分析

Python大量的库为数据分析和处理提供了完整的工具集,因此它广泛应用于科学计算领域。

比起R和MATLAB等主要用于数据分析的编程语言,Python不仅提供数据处理平台,而且还有其他语言和专业应用所没有的特点。Python库一直在增加,算法的实现采用更具创新性的方法,再加上它能跟很多语言(C和Fortran)相对接,这些特点都使得Python在所有可用于数据分析的语言中与众不同。

进一步来说,Python其实不是专用于数据分析的,它还有很多其他方面的用途。比如它本身是一门通用型编程语言,也可以作脚本来用,还能操作数据库;而且由于Django等框架的问世,Python近些年还用来开发Web应用。因此,使用Python开发的数据分析项目,完全可以跟Web服务器相兼容,也就可以整合到Web应用中。

因此,对于想从事数据分析的读者,Python以及它众多的包,在可以预见的将来会是最佳选择。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值