数据科学与大数据技术导论PPT完整全套教学课件.pptx

上传人:zf 文档编号:30847972 上传时间:2024-02-07 格式:PPTX 页数:526 大小:10.14MB
下载 相关 举报
数据科学与大数据技术导论PPT完整全套教学课件.pptx_第1页
第1页 / 共526页
数据科学与大数据技术导论PPT完整全套教学课件.pptx_第2页
第2页 / 共526页
数据科学与大数据技术导论PPT完整全套教学课件.pptx_第3页
第3页 / 共526页
数据科学与大数据技术导论PPT完整全套教学课件.pptx_第4页
第4页 / 共526页
数据科学与大数据技术导论PPT完整全套教学课件.pptx_第5页
第5页 / 共526页
点击查看更多>>
下载资源
资源描述

数据科学与大数据技术导论PPT完整全套教学课件.pptx

《数据科学与大数据技术导论PPT完整全套教学课件.pptx》由会员分享,可在线阅读,更多相关《数据科学与大数据技术导论PPT完整全套教学课件.pptx(526页珍藏版)》请在冰豆网上搜索。

数据科学与大数据技术导论PPT完整全套教学课件.pptx

数据科学与大数据技数据科学与大数据技术导论术导论数据科学与大数据技数据科学与大数据技术专业术专业系列系列规规划教划教材材数据科学与大数据技数据科学与大数据技术导论术导论第1章数据科学概论第2章Python语言与数据科学第3章数据分析基础第4章数据可视化第5章数据分析与计算第6章文本分析第7章数据存储与管理第8章数据采集与集成第9章数据治理第10章数据科学综合案例第第1章章数据科学概数据科学概论论1.1数据与大数据大数据是指一些规模很大的数据集。

这些数据集规模如此之大、如此复杂,以至于传统的数据处理软件已经无能为力。

对大数据的管理和分析给我们提出了新的挑战,涉及采集、存储、分析处理、查询和检索(搜索)、传输、可视化、隐私保护等方方面面。

大数据来自各个行业,包括政府、制造、医疗卫生、教育、媒体、银行和保险、物联网、科学研究等。

大数据具有如下几个主要的特点,如图1.1所示。

1数据量数据量(Volume)大大2数据数据类类型多型多样样(Variety)3数据生成速度快数据生成速度快(Velocity)4数据的真数据的真实实性性(Veracity)千差万千差万别别图图1.1大数据及其特大数据及其特点点1.2大数据应用案例从数据到知识,数据思维浅析1.2.1数据密集型科学数据密集型科学发现发现人类最早的科学研究,主要以记录和描述自然现象为特征,称为“实验科学”,即第一范式。

典型案例如钻木取火等。

随后,科学家开始利用模型,归纳总结过去记录的现象(第二范式)。

人类采用各种数学、几何、物理等理论,构建问题模型和解决方案。

在模型构建中,去掉复杂的干扰,留下关键的因素,揭示事物发展变化的内在规律。

典型案例如牛顿三大定律、麦克斯韦方程组、相对论等。

计算机的出现,使得人们可以利用计算机仿真来取代实验,这种方式逐渐成为科学研究的常规方法,称为第三范式。

人们可以利用计算机强大的计算能力,编写程序,对复杂现象进行模拟仿真,推演越来越复杂的现象,解决更加复杂的问题。

典型案例包括核爆炸模拟、天气预报等。

过去由牛顿、爱因斯坦这样的天才科学家才能完成的高度复杂的工作,未来有望由计算机来完成。

这就是科学研究的第四范式,即数据密集型科学发现。

科学研究的4种范式如图1.2所示。

图图1.2科学研究的科学研究的4种范种范式式我们可以通过如下的实例,来了解科学研究的第四范式,以及数据在科学研究和科学发现中的价值。

开普勒望远镜,是一架太空望远镜,用于搜寻太阳系外行星。

NASA(美国国家航空航天局)的科学家和Google公司的科学家合作,对开普勒望远镜采集的数据进行深入的分析。

凌星现象与恒星亮度变化如图1.3所示。

经过训练,他们教会这个神经网络,通过读取当一个行星在其所属的恒星前经过时恒星亮度的微小变化,识别出这颗行星,并且研判它的一些基本属性。

图图1.3凌星凌星现现象与恒星亮度象与恒星亮度变变化化1.2.2电电子商子商务务与推荐技与推荐技术术商家可以根据如下数据,对商品和服务进行推荐。

1根据用户近期的浏览、搜索行为,做出相关商品推荐。

2根据正在购物的用户的购物车内容,或者用户收藏物品的信息,推荐相似的物品。

3根据大量用户的购买历史记录,了解用户之间和商品之间的相似性,进而通过邮件推送或者会员营销,进行推荐。

具体的推荐技术,大致可以分为如下几类。

1基于人口统计特征的推荐2基于内容的推荐3基于关联规则的推荐4基于协同过滤的推荐图图1.4基于用基于用户户的的协协同同过滤过滤推推荐荐1.2.3网网络舆络舆情管理情管理网络舆情监控系统,是利用搜索引擎技术和网络信息挖掘技术,通过网页内容的自动采集、处理、聚类、分类、主题检测,以及统计分析,满足企事业单位、政府部门对相关网络舆情监督管理的需要而设计的系统。

网络舆情监控系统能够提供舆情简报和分析报告,为决策层全面掌握舆情动态,进而做出正确舆论引导,提供分析依据。

自媒体的兴起,给舆情管理带来了新的挑战。

主要的挑战体现在两个方面,一方面是需要迅速、准确地捕捉到微博等信息;另一方面是需要适时对舆情进行引导。

为了实现对包括微博、博客、各种论坛、微信以及传统媒体的电子版等各种网络信息发布平台的舆情监控,网络舆情监控系统需要具有如下一系列的功能。

首先,需要数据监测技术,实现对上述各个数据源的数据爬取和记录,并对爬取的数据进行适当的预处理,比如对图片、音频、视频进行自动识别等。

其次,需要大规模数据存储技术。

通过建设具有海量数据存储能力的大数据平台,实现对大规模结构化数据、非结构化数据的高效读写、存储、检索和交换。

再次,需要数据挖掘技术,从海量数据中快速挖掘有价值的信息,发现数据背后隐藏的规律性。

利用关联分析、聚类分析、话题分析、情感分析等技术,自动分析网上言论蕴含的意见和倾向性,揭示舆情发展趋势。

最后,需要安全技术,以保证数据的安全。

安全技术包括身份认证、授权、入侵检测、防火墙等技术。

1.2.4数据思数据思维维根据维基百科的定义,数据思维,是在利用数据解决业务问题的过程(Process)中,所表现出来的思维模式(MentalPattern)。

这个过程涉及一系列的步骤,包括选择一个业务领域或者主题(Subject),理解业务问题及其数据,对业务问题及其数据进行描述等。

为了完整性,数据思维还涉及寻找合适的方法对数据进行分析,以及如何恰当地展示分析结果,把数据处理整个流程的开始(业务需求)和结束(结果的解释和展示)关联起来,形成一个闭合的环路。

数据思维这一概念,是由MarioFaria和RogerioPanigassi于2013年在他们写的一本关于数据科学的书籍中创造出来的。

两位作者中的MarioFaria,也是世界上最早的首席数据官(ChiefDataOfficer,CDO)之一。

1.3数据科学与数据科学家数据科学,是关于对数据进行分析、抽取信息和知识的过程提供指导的基本原则和方法的科学。

数据科学关注各种类型的数据的不同状态、属性及变化规律,提出各种方法和技术手段,对数据进行简单的以及复杂的分析,从而揭示自然界和人类行为等不同现象背后的规律。

数据科学家,是伴随着大数据技术的崛起和数据科学的兴起而出现的新的就业岗位。

近年来,数据科学家的需求持续增长。

数据科学家是一种复合型人才,需要具备跨学科的知识和使用这些知识的技能,包括数学和统计分析、人工智能与机器学习、数据库与数据挖掘等。

具体而言,数据科学家需要具备一系列的关键能力,如图1.5所示。

图图1.5数据科学家需要掌握的知数据科学家需要掌握的知识识与技与技能能1.将数学基将数学基础础知知识转识转化化为为算法的技能算法的技能2.掌握机器学掌握机器学习习的方法的方法3.熟悉大数据熟悉大数据处处理平台和工具理平台和工具4.编编程能力程能力5.具具备备丰富的丰富的领领域知域知识识6.沟通和交流的能力沟通和交流的能力7.对对数据的直数据的直觉觉1.4数据科学与大数据技术课程的内容体系与具体内容根据上文对数据科学家技能要求的描述,我们对数据科学与大数据技术(课程)的内容体系进行了梳理,主要包括以下几个方面的内容,如图1.6所示。

图图1.6数据科学与大数据技数据科学与大数据技术术(课课程)的内容体程)的内容体系系1理理论论部分部分数据科学是关于数据的科学。

数据科学的核心任务,是从数据中抽取信息、发现知识;它的研究对象是各种各样的数据及其特性。

数据科学包含一组概念(Concept)、原则(Principle)、过程(Process)、技术/方法(Technique/Method)以及工具(Tool)。

其中的概念和基本原则(FundamentalPrinciple),给予我们观察问题、解决问题的一套完整的思想框架。

2技技术术部分部分技术部分的内容,包括不同的数据类型及其管理、分析方法。

数据类型包括结构化数据、非结构化数据、半结构化数据,分析方法包括统计学方法、数据挖掘和机器学习方法等。

3.系系统统部分部分各种数据分析工具,可以帮助我们真正实现数据的分析和处理,达成数据科学的目标。

4.应应用部分用部分应用部分也是实践部分,学习数据科学和学习编程有一些共通之处。

学习数据科学不应该是纯理论的学习,而是应该面向实际问题,通过模仿和创新,寻找问题的解决办法。

1.5思考题1.什么是大数据,大数据有什么特点?

2.什么是数据密集型科学发现,请举例说明。

3.除了数据密集型科学发现、电商中的商品推荐、网络舆情管理之外,请举出23个大数据应用案例。

4.什么是数据思维?

5.什么是数据科学?

6.什么是数据科学家,其技能要求有哪些?

7.请说明“数据科学与大数据技术”课程的内容体系,其具体内容包括哪些?

数据科学与大数据技数据科学与大数据技术导论术导论数据科学与大数据技术导论数数数数据据据据科科科科学学学学与与与与大大大大数数数数据据据据技技技技术术术术专专专专业业业业系系系系列列列列规规规规划划划划教教教教材材材材第第2章章Python语语言与数据科言与数据科学学2.1Python概述概述Python是一种面向对象的、解释型的计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明。

Python语言借鉴了大量其他语言的优秀特点,包括ABC、Modula-3、C、C+、Algol-68、Smalltalk、UNIXShell,以及一些脚本语言。

Python包含一组完善、易用的标准库,能够完成许多常见任务。

它的语法简洁清晰。

Python虚拟机可以在所有的操作系统上运行,包括Windows、Linux、UNIX、macOS等。

人们为Python开发了各种数据预处理、数据挖掘与机器学习、自然语言处理、数据可视化等软件库,建立了强大的生态,其应用领域得到了极大的扩展,被广泛地应用到各种数据分析场合中。

目前Python是最流行的5种编程语言之一,根据TIOBE2019年发布的编程语言流行度排行榜,Python是流行度仅次于Java、C的编程语言,排在C+和C#之前。

2.2Python开开发环发环境配置境配置截至2019年,Python有两个版本,一个是2.X版(如2.7版),一个是3.X版(如3.5版),这两个版本是不兼容的。

目前,3.X版已成为主流的版本。

安装Python的方法有两种,一种是使用官方标准版Python,另一种是使用第三方发布的集成版,比如Anaconda。

Python安装完成后,用户就会拥有Python解释器(负责Python程序的解释执行)、Python命令行交互环境(PythonShell)、通过网页进行交互式编程的环境(JupyterNotebook),以及一个简单的集成开发环境(Spyder),如图2.1所示。

图图2.1AnacondaPython开开发环发环境境在编程过程中,如果用户的目的是尝试执行一些代码片段,则可以选用JupyterNotebook;如果用户的目的是编写执行复杂功能的程序,则建议使用集成开发环境Spyder。

Spyder支持程序的调试功能,有利于排除错误。

它们的界面分别如图2.2和图2.3所示。

图图2.2JupyterNotebook交互式开交互式开发环发环境境图图2.3Spyder开开发环发环境境启动Spyder开发环境的方法是,单击Windows开始菜单,找到Anaconda3程序组,单击“运行Spyder”快捷方式。

Spyder启动以后,用户就可以新建项目、新建文件、编写代码和调试代码。

2.3变变量、常量和注量、常量和注释释1变变量量变量是在程序的执行过程中可以改变的量,它可以是任意的数据类型。

在Python中,变量无须事先定义其数据类型,对其进行赋值的时候,就确定了它的数据类型。

变量需要有一个名称,称为变量名。

变量名以英文、下画线开头,后续字符可以是英文、数字或者下画线。

表2.1列出了Python使用的保留字,用户不能给变量起这样的名字,也不能把这些保留字用作其他标识符(比如函数名)。

表表2.1Python的保留的保留字字2常量常量是在程序的执行过程中不能改变的量,包括整数、小数、字符串等。

3注释Python的注释以#开头,#之后一直到一行末尾的所有字符,都是注释的一部分,Python解释器将忽略它们,不予执行。

2.4数据数据类类型型Python支持的数据类型,包括基本数据类型,如布尔值、整数、浮点数、字符串、复数等,以及衍生数据类型,如列表、元组、字典、集合等。

第三方软件库如pandas等还提供二维表、Panel(多个二维表)等对象类型,用于表示更加复杂的数据结构。

2.4.1布尔型布尔型(bool)有两种取值,True和False。

在Python中,可以直接用True、False表示布尔值,也可以通过关系运算或者逻辑运算获得结果。

2.4.2整数Python可以表示精度不限的整数(int,包括0和负整数)。

在程序中,整数的表示方法与数学上的写法是一致的,比如150、-50、0等。

2.4.3浮点数浮点数(float)也就是小数,可以使用通用的写法,如3.27、3.28、-9.11等;也可以使用科学计数法表示,比如8.76e3表示8.76103,即8760,1.8e-5表示0.000018等。

2.4.4字符串字符串(str)是由若干字符组成的有序序列,字符串可以用单引号或者双引号括起来。

如果分别用三个双引号首尾括起来,则可以使用若干行的字符串常量,对一个变量进行赋值,换行和空格都是该字符串的一部分。

2.4.5列表列表(list)是包含不同类型元素的、可以改变的有序序列。

当然,列表的元素也可以是同样类型的,比如整数列表、小数列表等。

列表的表示方法是,用符号“”把元素包含起来,中间用逗号隔开。

注意,列表的元素,也可以是列表。

2.4.6元组元组一旦初始化以后,就不能更改了,它也没有append()、insert()这样的更改序列方法。

元组可以被看作是只读的(read-only)列表。

定义一个tuple时,就需要把元素都定下来。

2.4.7字典Python的字典(dict)是一个对照表,这个表包含一系列的键值对(),键值对的key和value可以是整数、小数、字符串或者布尔值等数据类型。

dict具有极快的查找速度。

寻访一个dict的某个key所对应的元素,可以使用dictkey的方法,也可以使用dict.get(key)方法。

若要删除一个key,则可使用pop(key)方法,对应的value会从dict中被删除。

判断一个特定的key是否在某一个dict中,可以用keyindict来判断。

2.5运算符及其运算符及其优优先先级级、表达式、表达式Python的运算符包括算术运算符、关系运算符、逻辑运算符、集合运算符、对象运算符等。

表2.2列出了主要的运算符及其实例。

表表2.2运算符及其运算符及其实实例例续续表表运算符是有优先级的,比如在一个表达式中,既有加减法运算,又有乘除法运算,那么在没有括号的情况下,先做乘除法运算,再做加减法运算。

若使用括号,则会改变运算执行的顺序。

在变量、常量、运算符的基础上,我们就可以构造表达式,对数据进行计算。

表达式是利用运算符,把兼容的常量、变量拼接起来的式子,表达式是编写程序的基础。

2.6程序的基本程序的基本结结构构程序的基本结构有3种,分别是顺序结构、分支结构和循环结构。

2.6.1顺序结构顺序结构是最常见的一种程序结构。

解释器执行顺序结构的Python程序时,它将顺序地解释执行各个语句,直到程序的末尾。

2.6.2分支结构分支结构用于根据一定的条件进行判断,然后决定程序的走向,赋予程序一定的智能性。

分支结构由if语句、else语句、elif语句来构造,并且可以嵌套。

2.6.3循环结构Python支持两种循环结构,分别是while循环和for循环。

2.6.4编写完整的程序程序的要素有两个,一个是数据结构,另一个是算法。

数据结构是对我们要解决的问题进行的建模,而算法则是解决问题的一系列步骤。

算法具有如下的一系列的特点。

1确定性:

算法的每个步骤都是确定的,不是含糊、模棱两可的。

2有穷性:

算法应该包含有限的操作步骤,而不是无限的。

3有0个或者多个输入:

算法可以通过输入获得必要的外界信息。

4有1个或者多个输出:

算法的目的就是求解,问题的解,就是算法的输出。

5有效性:

算法的每个步骤都得到确定的结果。

2.6.5程序实例:

二分查找在一个列表里面寻找一个元素,如果数据是没有顺序的,那么只能从头开始找,或者从末尾开始找,直到找到该元素为止。

或者已经查找完整个列表,没有找到该元素,这时候应该报告找不到。

如果列表的元素是有序的(比如列表包含数字,数字元素从小到大排列;或者,列表包含字符串,字符串元素符合字典序等),我们就可以使用二分查找算法寻找某个元素。

二分查找算法的基本原理是,我们到有序序列的中间去查找某元素,如果找到,则停止。

否则,如果目标元素比中间这个元素大,则到有序序列的较大序列部分去查找;如果目标元素比中间这个元素小,则到有序序列的较小序列部分去查找。

直到找到目标元素,或者查找了整个序列为止(找不到)。

2.7函数以及函数以及库库函数函数在Python语言中,函数可以把具有一定功能的代码组织起来。

对于经常用到的一些功能,比如打印输出变量的值,可以把实现这些功能的代码组织成函数的形式,在需要这些功能的时候,直接调用函数即可,无须再写一遍类似的代码。

可见,编写函数的目的是多次调用。

定义函数的时候,只需要规定好函数接受什么样的参数,将返回什么样的值。

对于调用者来说,只需要了解这些信息就足够了,至于函数内部是如何实现的,则无须关心。

函数的实现者则负责函数的真正编写。

定义一个函数的语法如下:

def函数名(参数列表):

函数体(语句块)在Python中,一个函数可以调用其他函数,甚至可以调用自身,即函数可以递归调用。

函数的递归调用,使得解决一些问题的代码变得简单、易于理解。

2.8面向面向对对象象编编程程Python是一种面向对象的编程语言,它通过封装机制,把数据和对数据的操作封装成类,而类的实例化则是一个个的对象。

2.8.1构造函数一个类的构造函数负责对象的构造,构造函数的名称为_init_,它包含一个self参数以及其他参数。

其中,self参数指向将要构造的对象,也就是说,self是对象的引用。

构造函数的作用是对对象进行初始化。

2.8.2对象的摧毁和垃圾回收对于程序不再使用的对象,Python周期性地执行垃圾回收过程,自动删除这些对象,释放其所占用的内存空间。

2.8.3继承在定义类的时候,我们可以基于已有的类定义新的类,新的类(子类)和已有的类(父类)是继承的关系。

子类不仅继承了父类的所有属性和方法(函数),还可以增加新的属性和方法。

2.8.4重写我们必须为新的类Manager定义一个新的show函数,这个函数与父类Employee的show函数同名,但是功能有些不一样,除了显示姓名、性别、年龄和薪水,它还显示特殊津贴。

这种对父类的方法进行重新定义的机制,称为重写(Override)。

2.9异常异常处处理理在执行程序的过程中,可能发生各种异常情况,比如一个非零的整数除以0就会引发异常。

我们可以捕捉程序的异常,然后打印提示信息,帮助用户了解发生的情况,然后采取补救措施,而不是让程序终止执行。

比如提示用户输入正确的数值、释放磁盘空间、连接互联网等。

一般把有可能引发异常的代码放在一个“try:

”语句块里,在“try:

”语句块之后,跟着一个“except:

”语句及其语句块,该语句块的代码,将对异常情况做出处理。

2.10第三方第三方库库和和实实例例人们在编写Python程序的时候,并不是什么都从头开始,而是有很多的第三方库可以使用,Python语言的强大也来源于此。

第三方库一般以模块(Module)的方式对代码进行组织,把相关的代码组织到一个模块里面,易于人们的理解和使用。

最简单的模块就是一个Python源代码文件。

在这个源文件里面,可以定义类(Class)、变量(Variable)和函数(Function)。

为了使用第三方库,需要把模块导入到本文件,才能使用模块中的功能。

我们也可以把一些通用功能写到一个源文件里,形成自己的模块,其他的文件可以通过import语句导入这些模块,从而使用其中的功能。

对应的模块文件需要放在操作系统的搜索路径(SearchPath)中。

搜索路径指的是Python解释器可以在里面搜索模块文件的一系列目录。

在Windows操作系统中,可以通过设定PATH系统环境变量,设置搜索路径。

2.10.1机器学习库scikit-learn简介scikit-learn是面向Python的机器学习软件包,它可以支持主流的有监督机器学习方法和无监督机器学习方法。

有监督的机器学习方法,包括通用的线性模型(GeneralizedLinearModel,比如线性回归LinearRegression)、支持向量机(SupportVectorMachine,SVM)、决策树(DecisionTree)、贝叶斯方法(BayesianMethod)等;无监督的机器学习方法,包括聚类(Clustering)、因子分析(FactorAnalysis)、主成分分析(PrincipalComponentAnalysis)、无监督神经网络(UnsupervisedNeuralNetwork)等具体的scikit-learn实例、Keras实例、matplotlib实例,在“第5章数据分析与计算”中进行介绍。

2.10.2深度学习库Keras简介Keras是基于Theano或者Tensorflow的一个深度学习软件库。

它是用Python语言编写的一个高度模块化的深度学习库,支持GPU和CPU。

用户可以选择安装Theano或者Tensorflow作为后端,然后再安装Keras,修改其配置文件,指定所使用的后端。

Keras的主要模块如下。

1Optimizers是优化模块,提供了通用的优化方法,包括随机梯度下降法(StochasticGradientDescent,SGD)。

2Objectives是目标函数模块。

3Activations是激活函数模块。

4Initializations是参数初始化模块。

5Layers模块则包含了构造深度神经网络的基本构件(层)。

6Preprocessing是预处理模块。

7Models模块把各种基本组件组合起来,组成一个深度神经网络。

2.10.3绘图库matplotlib简介matplotlib是一个2D绘图库。

用户可以使用matplotlib生成高质量(达到出版精度)的图形,并且可以以多种格式进行输出,比如以Postscript的格式输出,然后包含在Tex文件中,进而生成PDF文档。

matplotlib是用Python语言编写的,它使用了numpy及其他函数库,并且经过优化,能够处理大数组。

matplotlib提供了面向对象的编程接口,用户只需编写几行代码,就可以对数据进行图形绘制,看到数据的可视化效果。

而对于高级用户而言,matplotlib提供了完全的定制能力,包括设定线型、字体属性、坐标轴属性等。

matplotlib提供了众多的图形类型供用户选择,包括柱状图(BarChart)、误差图(ErrorChart)、散点图(ScatterPlot)、功率谱图(PowerSpectra)、直方图(Histogram)等。

2.10.4社交网络与图数据处理库networkX简介networkX是用Python语言开发的一个软件包,用于复杂网络分析,包括创建网络、对网络进行操作、研究网络的结构及其动态演化机制等。

networkX是一款免费的软件,遵循BSDLicense版权协议,用户可以对其进行修改和再发布(Redistribute)。

networkX项目创建于2002年。

第一版由AricHagberg、DanSchult和PieterSwart在2002年和2003年设计和实现。

networkX的第一个公开发行版于2005年发布。

networkX内置了常用的图与复杂网络分析算法。

通过使

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1