第九章-Python数据处理与机器学习课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第九章-Python数据处理与机器学习课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 Python 数据处理 机器 学习 课件
- 资源描述:
-
1、机器学习与大数据技术作者:牟少敏教授第九章p 矩阵计算p 网络爬虫p 数据库p OpenCV图像编程 Python数据处理与机器学习数据处理与机器学习p 数据可视化p 基于Python机器学习算法p 基于Python大数据处理技术p Tensorflow编程创新与贡献研究意义选题背景第九章 本章主要介绍了如何用python进行数据处理和实现机器学习中常用算法的实现。学习目标创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算 矩阵在图像处理和机器学习中应用非常广泛。numpy是Python中关于矩阵运算的库,能够完成矩阵加减乘除、矩阵转置、逆矩阵、行列式、矩阵的幂、伴随矩阵等功能。创新与贡
2、献研究意义选题背景第九章9.1 矩阵计算矩阵计算9.1.1基础知识1 numpy基础 numpy包含数组和矩阵两种基本的数据类型,有许多创建数组的函数,只有创建数组才能对其进行相关的操作。通过给array函数传递对象来创建数组,首先需要使用import语句导入numpy库。若使用的是import numpy命令,则在创建数组时用a=numpy.array(1,2,3,4)的形式;若导使用的是import numpy as np命令,则在创建数组时用a=np.array(1,2,3,4)。创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算例9-1 使用numpy创建矩阵,然后打印出来,源码
3、如下。import numpyimport numpy as np test1=np.array(1,2,3,3,4,5)print(test1.shape)print(test1.ndim)#打印数组维数。print(test1.min()#打印最小值print(test1.sum()#打印矩阵所有元素的和print(test10)#矩阵的取值,这里取第一行print(test10,2)#打印第一行的第3个元素 使用array函数创建数组时,参数必须是由方括号括起来的列表,而不能是多个数值。可使用双重序列来表示二维数组,三重序列表示三维数组,以此类推创新与贡献研究意义选题背景第九章9.1 矩
4、阵计算矩阵计算调用shape方法,可获取矩阵的大小,例如:(4,):shape有一个元素即为一维数组,数组中有4个元素;(3,4):shape有两个元素即为二维数组,数组为3行4列。例9-7 使用sum(axis=1)方法对矩阵进行行求和,源码如下。test1=np.array(5,10,15,20,25,30,35,40,45)test1.sum(axis=1)输出结果:array(30,75,120)例9-8 使用sum(axis=0)方法对矩阵进行列求和,源码如下。test1=np.array(5,10,15,20,25,30,35,40,45)test1.sum(axis=0)#输出a
5、rray(60,75,90)(2)矩阵行列计算(1)求矩阵大小创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算(3)最值计算(4)矩阵转置 T表示矩阵的转置矩阵,也适用于高维向量。例9-12 求矩阵test转置矩阵,源码如下。test.shape=(6,2)print(test)输出结果:4.8.8.0.6.9.9.2.4.0.0.0.test.T#计算转置输出结果:array(4.,8.,6.,9.,4.,0.,8.,0.,9.,2.,0.,0.)创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算(5)矩阵乘法例9-14 对矩阵a和b进行乘法计算,源码如下。import num
6、py as npa=np.array(1,2,3,4)b=np.array(5,6,7,8)print(a*b)#对应位置元素相乘print(a.dot(b)#矩阵乘法print(np.dot(a,b)#矩阵乘法#输出 5 12 21 32 19 22 43 50 19 22 43 50 创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算(6)创建矩阵例9-17创建1矩阵,源码如下。np.ones(3,3)#创建3*3的全1矩阵。输出结果:array(1.,1.,1.,1.,1.,1.,1.,1.,1.)例9-16 创建全0矩阵,源码如下。np.zeros(3,3)#创建3行3列的0矩阵
7、array(0.,0.,0.,0.,0.,0.,0.,0.,0.)np.zeros(3,3),dtype=np.str)#在创建时指定数据类型输出结果:array(,dtype=np.eye(2,dtype=int)输出结果:array(1,0,0,1)a1=1,2,3np.diag(a1)输出结果:array(2,0,0,0,4,0,0,0,6)(7)对角矩阵创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算伴随矩阵的求法:把矩阵的各个元素都换成它相应的代数余子式,将所得到的矩阵转置便得到A的伴随矩阵。例9-21 求矩阵a的逆矩阵,源码如下。a=np.linalg.inv(a)#矩阵a
8、的逆矩阵b=np.linalg.det(a)#方阵的行列式a*b#伴随矩阵为逆矩阵与方阵行列式的乘积np.linalg.norm(a,ord=None)#计算矩阵a的范数(8)伴随矩阵创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算(9)数组的特征信息 例9-23将矩阵a进行分隔,同列表和数组的分隔一致,源码如下。a=np.mat(np.ones(3,3)matrix(1.,1.,1.,1.,1.,1.,1.,1.,1.)b=a1:,1:/分割出第二行以后的行和第二列以后的列的所有元素matrix(1.,1.,1.,1.)(10)矩阵的分隔和合并(11)索引 numpy中的数组索引形式
9、和Python是一致的。创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算2矩阵函数(1)扩展矩阵函数tile()tile函数功能是重复某个数组,例如tile(A,n)是将数组A重复n次,构成一个新的数组,函数语法格式如下:tile(A,reps)A是array,list,tuple,dict,matrix以及基本数据类型int,string,float以及bool类型。reps的类型可以是tuple,list,dict,array,int,bool,但不可以是float,string,matrix类型。tile(a,x):x是控制a的重复次数,结果是一个一维数组。tile(a,(x,y
10、):结果是一个二维矩阵,行数为x,列数是一维数组a的长度和y的乘积。tile(a,(x,y,z):结果是一个三维矩阵,矩阵的行数为x,矩阵的列数为y,而z表示矩阵每个单元格里a重复的次数,三维矩阵可以看成一个二创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算维矩阵,每个矩阵的单元格里存者一个一维矩阵a。(2)range()和arange()函数range函数返回一个列表对象。arange()函数与range()函数类似,但是返回一个array对象,并且arange可以使用float型数据。函数包含三个参数,前两个参数是等差数列的数据范围,第一个参数是等差数列第一个元素,第二个参数是等差
11、数列最后一个元素,第三个参数是等差数列的公差,例9-27 range()和arange()函数应用实例,源码如下。import numpy as npnp.arange(1,10,0.5)运行结果:array(1.,1.5,2.,2.5,3.,3.5,4.,4.5,5.,5.5,6.,6.5,7.,7.5,8.,8.5,9.,9.5)创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算9.1.2应用举例 numpy.linalg模块包含各种线性代数的函数,可以实现逆矩阵、求特征值、解线性方程组以及行列式等计算。l 计算逆矩阵l 求解线性方程组创新与贡献研究意义选题背景第九章9.1 矩阵计算
12、矩阵计算1计算逆矩阵 例9-28一个创建矩阵A,使用inv函数计算其逆矩阵,源码如下。A=np.mat(0 1 2;12 3;4 3 3)print(A)输出结果:matrix(0,1,2,1,2,3,4,3,3)matrix(0,1,2,1,2,3,4,3,3)inv=np.linalg.inv(A)print(inv)输出结果:inv=np.linalg.inv(A)print(inv)输出结果:matrix(3.,-3.,1.,-9.,8.,-2.,5.,-4.,1.)检查原矩阵和求得的逆矩阵相乘的结果是否为单位矩阵:print(A*inv)输出结果:1.0.0.0.1.0.0.0.1.
13、需要注意的是矩阵必须是方阵且可逆,否则会抛出LinAlgError异常。创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算numpy.linalg中的函数solve可以求解形如Ax=b的线性方程组,其中A为矩阵,b为一维或二维的数组,x是未知变量。例9-29 使用solve函数求解线性方程组实例,源码如下。import numpy as np#创建矩阵和数组B=np.mat(1-2 1;0 2-8;-4 5 9)b=np.array(0,8,-9)#调用solve函数求解线性方程x=np.linalg.solve(B,b)print(x)array(29.,16.,3.)#使用dot函数
14、检查求得的解是否正确print(np.dot(B,x)0.8.-9.2 求解线性方程组创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算特征值即方程Ax=ax的根,其中A是一个二维矩阵,x是一个一维向量。在numpy.linalg模块中,eigvals函数可以计算矩阵的特征值,而eig函数可以返回一个包含特征值和对应的特征向量的元组。例9-30 使用eigvals函数求特征值和特征向量,源码如下。import numpy as np#创建一个矩阵C=np.mat(3-2;1 0)#调用eigvals函数求解特征值c0=np.linalg.eigvals(C)print(c0)array(
15、2.,1.)使用eig函数可以求解特征值和特征向量,该函数将返回一个元组,按列存放特征值和对应的特征向量,其中第一列为特征值,第二列为特征向量。3 特征值和特征向量创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算 奇异值分解是一种因子分解运算,将一个矩阵分解为3个矩阵的乘积。numpy.linalg模块中的svd函数可以对矩阵进行奇异值分解。该函数返回3个矩阵U、Sigma和V,其中U和V是正交矩阵,Sigma包含输入矩阵的奇异值。例9-32 使用svd函数进行奇异值分解,源码见二维码。#结果包含等式中左右两端的两个正交矩阵U和V,以及中间的奇异值矩阵Sigma。使用diag函数可以生
16、成完整的奇异值矩阵,将分解出的3个矩阵相乘。print(U*np.diag(Sigma)*V)4.11.14.8.7.-2.4 奇异值分解创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算 使用numpy.linalg模块中的pinv函数进行求解广义逆矩阵,inv函数只接受方阵作为输入矩阵。例9-33 使用pinv函数求解广义逆矩阵,源码如下。import numpy as np#创建一个矩阵E=np.mat(4 11 14;8 7-2)pseudoinv=np.linalg.pinv(E)#使用pinv函数计算广义逆矩阵print(pseudoinv)matrix(-0.0055555
17、6,0.07222222,0.02222222,0.04444444,0.05555556,-0.05555556)#将原矩阵和得到的广义逆矩阵相乘print(E*pseudoinv)1.00000000e+00 -7.77156117e-16 -1.11022302e-16 1.00000000e+005 广义逆矩阵创新与贡献研究意义选题背景第九章9.1 矩阵计算矩阵计算numpy.linalg模块中的det函数可以计算矩阵的行列式。例9-34 使用det函数对行列式进行计算,源码如下。import numpy as np#计算矩阵的行列式F=np.mat(1 4;1 6)matrix(1,
18、4,1,6)#使用det函数计算行列式print(np.linalg.det(F)2.06 行列式计算创新与贡献研究意义选题背景第九章9.2 网络爬虫网络爬虫9.2.1基础知识 网络爬虫是按照一定的规则,自动地抓取互联网信息的程序或者脚本。网络爬虫的定义为:利用标准的http 协议,根据超级链接和Web 文档检索的方法遍历万维网信息空间的软件程序。网络爬虫被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,供搜索引擎做进一步处理,使得用户能更快的检索到他们需要的信息。大数据背景下,各行各业都需要数据支持,在浩瀚的数据中获取感兴趣的数据成为了研究热点。在数据搜索方面,
19、现在的搜索引擎虽然比刚开始有了很大的进步,但对于一些特殊数据搜索或复杂搜索,还不能很好的完成,所得到数据不能满足需求。网络安全,产品调研等研究都需要数据支持,而网络上没有现成的数据,需要自己手动去搜索、分析,格式化为满足需求的数据。利用网络爬虫技术能自动完成数据获取,汇总的工作,大大提升了工作效率。创新与贡献研究意义选题背景第九章9.2 网络爬虫网络爬虫(1)Python语言简洁,简单易学;(2)Python使用方便,不需要笨重的 IDE,只需要一个文本编辑器,就可以进行大部分中小型应用的开发。(3)Python有功能强大的爬虫框架 Scrapy。Scrapy 是一个为了爬 取网站数据,提取结
20、构性数据而编写的应用框架,可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。(4)Python有强大的网络支持库以及 html 解析器。使用网络支持库requests,可以方便地下载网页;使用网页解析库 Beautiful Soup,可以方便地解析网页各个标签,再结合正则表达式抓取网页中的内容。(5)Python十分擅长处理文字字符串。包含了常用的文本处理函数,支持正则表达式,可以方便地处理文本内容。使用Python语言编写网络爬虫有很多优点。创新与贡献研究意义选题背景第九章9.2 网络爬虫网络爬虫 从功能上来讲,网络爬虫一般分为数据采集,处理,储存三个部分。爬虫从一个或者多个初
21、始 URL 开始,下载网页内容,然后通过搜索或是内容匹配手段获取网页中感兴趣的内容,同时不断从当前页面提取新的 URL。程序根据网页抓取策略,按一定的顺序放入待抓取 URL 队列中,整个过程循环执行,直到满足系统相应的停止条件。然后对这些被抓取的数据进行清洗、整理、建立索引,存入数据库或文件中。最后根据查询需要,从数据库或文件中提取相应的数据,以可视化的方式展示出来。在网络爬虫系统中,待抓取 URL 队列是很重要的一部分,待抓取 URL 队列中的 URL以什么样的顺序排列也是十分重要的问题,这涉及到优先抓取哪个页面,再抓取哪个页面。而决定这些URL排列顺序的方法称为做抓取策略,可以分为深度优先
22、、广度优先和最佳优先三种。创新与贡献研究意义选题背景第九章9.2 网络爬虫网络爬虫(1)广度优先搜索策略。这种策略的主要思想是,由根节点开始,首先遍历当前层次的搜索,然后才进行下一层的搜索,依次类推逐层的搜索。这种策略多用在主题爬虫上,因为越是与初始 URL 距离近的网页,其具有的主题相关性越大。在宽度优先搜索中,先搜索完一个Web页面中所有的超级链接,然后再继续搜索下一层,直到底层为止。例如一个HTML 文件中有3个超级链接,选择其中之一,处理相应的HTML文件,然后不再选择第二个HTML文件中的任何超级链接,而是返回,选择第二个超级链接,处理相应的HTML文件,再返回,选择第三个超级链接,
23、并处理相应的HTML文件。一旦一层上的所有超级链接都被选择过,就开始在刚才处理过的HIML文件中搜索其余的超级链接。这保证了对浅层的首先处理。当遇到一个无穷尽的深层分支时,不会导致陷进深层文档中无法出来。宽度优先搜索策略能在两个HTML文件之间找到最短路径。创新与贡献研究意义选题背景第九章9.2 网络爬虫网络爬虫(2)深度优先搜索策略。这种策略的主要思想是,从根节点出发找出叶子节点,然后以此类推。在一个网页中选择一个超链接,被链接的网页将执行深度优先搜索,形成单独的一条搜索链,当没有其他超链接时,搜索结束。深度优先搜索是在开发爬虫早期使用较多的方法,它的目的是要达到被搜索结构的叶结点。在一个H
24、TML文件中,当一个超级链接被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超级链接结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超级链接走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超级链接。当不再有其他超级链接可选择时,说明搜索已经结束。这种方法优点是能遍历一个Web站点或深层嵌套的文档集合。创新与贡献研究意义选题背景第九章9.2 网络爬虫网络爬虫(3)最佳优先搜索策略。这种策略的主要思想是,聚焦爬虫的爬行策略只跳出某个特定主题的页面,根据“最好优先原则”进行访问,快速地获得更多的与主题相关的页面。主要通过内容与W
25、eb的链接结构指导进一步的页面抓取。聚焦爬虫会给它所下载的页面一个评价分,根据得分排序插入到一个队列中。最好的下一个搜索对弹出队列中的第一个页面进行分析后执行,这种策略保证爬虫能优先跟踪那些最有可能链接到目标页面的页面。决定网络爬虫搜索策略的关键是如何评价链接价值,不同的价值评价方法计算出的链接的价值不同,表现出的链接的“重要程度”也不同,从而决定了不同的搜索策略。由于链接包含于页面之中,而通常具有较高价值的页面包含的链接也具有较高价值,因而对链接价值的评价有时也转换为对页面价值的评价。这种策略通常运用在专业搜索引擎中,因为这种搜索引擎只关心某一特定主题的页面。创新与贡献研究意义选题背景第九章
展开阅读全文