Python数据分析基础与案例实战PPT完整全套教学课件_第1页
Python数据分析基础与案例实战PPT完整全套教学课件_第2页
Python数据分析基础与案例实战PPT完整全套教学课件_第3页
Python数据分析基础与案例实战PPT完整全套教学课件_第4页
Python数据分析基础与案例实战PPT完整全套教学课件_第5页
已阅读5页,还剩564页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

了解交通大数据第1章1.1了解交通大数据.pptx第2章Python数据分析简介.pptx第3章3.1了解常见的数据来源.pptx第3章3.2数据获取.pptx第3章3.3了解数据的常见类型.pptx第3章3.4掌握数据的读取方式.pptx第4章数据探索.pptx第5章数据预处理.pptx第6章6.1构建分类与回归模型(1).pptx第6章6.1构建分类与回归模型(2).pptx第6章6.2构建聚类模型.pptx第6章6.3构建时间序列模型.pptx第7章运输车辆驾驶行为分析.pptx第8章公交车站点设置优化分析.pptx第9章铁路站点客流量预测.pptx第10章基于TipDM大数据挖掘建模平台实现运输车辆驾驶行为分析.pptx全套可编辑PPT课件1交通大数据的应用目录交通大数据的背景2现如今,随着大数据行业的蓬勃发展,大数据与人们的生活早已息息相关。日常生活中的衣食住行都会产生大量的数据,这些数据看似杂乱无章却在抽丝剥茧后可以发现其中的规律。如何在这些海量数据中挖掘到想要的结果,目前是一个非常热门的研究方向。本章主要介绍交通大数据的背景与应用、数据分析的基本任务和基本流程、常用的数据分析工具以及如何配置Python开发环境。绪论随着云时代的来临,大数据也吸引了越来越多的关注。而交通大数据作为其下的分支自然备受关注。接下来简单介绍交通大数据的背景以及应用。了解交通大数据随着交通运输服务行业的发展、城市规模的不断扩大以及城市智能化进程的加快,大数据在交通运输领域中的应用也成为了当下的热点。大数据的应用使人们重新认识了交通需求以及交通运行的内在规律,同时也改变了交通运输的规律。海量数据不仅能为企业带来商业价值,也能为社会产生巨大的社会价值。科学合理使用这些数据将使未来的生活产生极大的改变。交通大数据就是将所有与交通有关的数据信息整合到一起的数据链,交通行业是天然的大数据行业,随着交通领域技术发展及应用的推广,每天产生的交通数据信息量能够达到PB级别,并且呈几何级别的增长。交通大数据的来源主要有:公路、铁路及城市交通管理系统中的信息服务平台、道路流量检测、道路监控、车牌识别、电子监控、路上称重、公交运营、长途客运售票、地铁售票、铁路售票、出租车调度、停车管理、公共自行车运营、公交一卡通统计等。交通大数据的背景大数据已经渗透到每个行业和业务职能领域,并成为重要的生产要素。目前普遍认为大数据具有大量(Volume)、多样(Variety)、高速(Velocity)、价值(Value)等特征,而交通大数据作为大数据的一种,自然也具备着同样的特征。交通大数据的背景1.交通大数据具备的特点交通大数据的具体特征如表所示。交通大数据的背景特征概述大量(Volume)交通大数据所涉及的交通信息类型相当广,而每种类型的衍生也特别多。如行人(乘车记录,路线记录)、车辆(车辆状况记录、摄像头记录)、道路(基础设施记录、车流量记录)多样(Variety)涉及面的广大,决定了交通大数据形式的多样性。比如行人出行相关的数据,包括出行方式(字符类型)、出行时间(时间类型)、目的地所在(地理信息)等等。如果扩展到其他类型的交通信息,数据的多样性会更强,每个区域、每段时间,交通信息都会存在各种各样的数据。有结构化明显的车辆基础信息数据,还有一些结构化不明显数据,如图片、音频、视频等高速(Velocity)交通大数据具有高速性。交通运行状态、交通服务对象、交通运载工具,每时每刻都在产生大量的数据,同时这些数据也需要进行快速处理、分析和挖掘,并及时给出反馈信息价值(Value)交通大数据中隐藏着巨大价值,但是价值的密度较低,往往需要对庞大的数据进行挖掘分析处理,才能获得需要的信息机遇往往伴随着挑战,随着智能交通技术的发展及应用的推广和深入,智能交通大数据发展同样面对着巨大挑战,如表所示。交通大数据的背景2.交通大数据面临的挑战挑战概述数据采集的质量由于资金缺乏、信息化建设速度慢、缺乏统一数据采集标准、缺乏各部门之间的协作机制等问题,导致数据采集的质量受到很大的影响数据储存压力交通大数据最突出的特点是“庞大”,采集到的数据规模庞大、类型多,有结构化、半结构化和非结构化(语音、视频等)的数据,但数据存储技术的发展速度落后于交通大数据的更新速度和应用需求数据共享利用由于交通大数据分散在不同单位和政府部门等,彼此孤立,所以很难实现数据共享,就连交通部门内部的数据共享也是困难重重数据的分析处理由于交通大数据数量规模庞大、价值密度很低、对时效性处理要求很高等,所以需要根据不同的应用需求,建立不同的数据分析模型,实现对数据的有效深入分析数据应用智能交通大数据应用群体多,如普通出行者、交通规划与管理部门、咨询机构等,如何开发个性化的智能交通大数据应用系统,以满足不同用户群体,也是未来交通大数据发展与应用中面临的挑战交通使用者是交通系统的服务对象,主要包括行人、乘客、驾驶员以及企业等。对于交通使用者而言,其主要关心的是通往目的地的道路交通状态信息,如路况信息、拥挤与事件信息、交通管制信息等,并据此做出合理的出行计划。交通大数据的背景3.交通大数据服务的对象用户对基础交通信息的需求如表所示。交通大数据的背景用户主体对交通信息的需求驾驶员车辆的诱导信息,如出行前需要了解路网与当前交通状况信息,选择最佳出行路线;行驶过程中需要了解动态交通信息,包括事故、施工、阻塞等,以便调整路线形式;遇到事故时能够得到及时救援;提供停车信息等乘客了解到达目的地的各种交通手段、路线、时间、途中的各种服务特种车辆驾驶员提供优先通行策略和行驶过程中的诱导信息、安全警告信息和调度信息车辆所有者车辆收费、管理信息,应通过车辆信息与自动定位、收费装置完成采集;车辆被盗后应当能够尽快通过先进的通信手段报警;当车辆在非运行状态下发生意外损坏时,通过车辆自动报警装置发出警报行人、非机动车骑行者、摩托车驾驶员通过先进的信号系统,在弯道、路口、狭窄街道等视野受限制区域,能感知行驶车辆的存在;在上述区域能感知行驶车辆的速度、转向和变更路线等行驶状态或意向;在用户途中遭遇疾病、盗匪等意外危险事件时,能发送紧急求救信号并通告所在位置交通管理部门通过监控系统实时地对路网进行监控;对施工、阻塞以及发生交通事故,应自动确定地点及路段和车辆,并自动调度警力前往事故地点进行事故处理;为了能够保证紧急车辆快速、顺利到达事发地点,提供如路网、路况信息、紧急事件相关信息,并将道路状况及时通过信息系统发布公安机关通过先进的通信手段或监控系统在第一时间获得车辆被盗、驾驶员人身安全受到威胁等信息,运用定位技术自动确定出事地点,自动地调度警力进行处理。对公共运输设施、停车场、警车内安全(包括警车、公安人员和犯罪嫌疑人)进行监视、监测,利用通信与感测技术,通过显示和预警装置向公安人员提供足够的交通信息,帮助其做出最合适的决策用户对基础交通信息的需求如表所示。(接上表)交通大数据的背景用户主体对交通信息的需求汽车运输公司通过监控系统了解车辆的运营和客流状况,及时根据客流变化调整调度;遇到车辆故障及其他紧急事件应发出报警信号并迅速采取相应措施;当进行危险品运输时,提供通告、监控、路线引导等特殊的安全服务基础设施(包括道路、换乘枢纽等)建设与管理部门提供基础设施的位置信息,运用先进的通信和监控手段,对可能造成基础设施破坏的危险品运输,提供自动检测、通告、路线引导等服务,以保障基础设施的安全;通过监控系统实时监控换乘枢纽的运转状况;对安全隐患发出警告信号;一旦出现紧急情况,自动报警并自动引导乘客通过紧急通道进行疏散换乘者提供最佳换乘路线,遇有紧急情况应当能够发出紧急救援信号;并提供路线引导服务,通过紧急通道迅速撤离消防部门通过先进的通信手段接收消防救援信号,自动定位,引导消防车在第一时间到达火灾地点急救中心通过先进的通信手段接收医疗紧急救援信号,通过紧急救援系统中的自动定位,迅速派出救护车进行紧急医疗救护交通控制指挥中心(紧急事件管理中心)通过监控系统对路网进行实时监控;自动检测紧急事件;通过先进的通信手段接收紧急救援信号,自动确定救援地点,并发送救援指令迅速组织救援车辆维修公司通过先进的通信手段接收车辆故障信息,自动定位,并迅速提供维修服务1交通大数据的应用目录交通大数据的背景2人们在日常出行时经常会碰见各种交通相关的问题,如交通堵塞、找不到公交车站点的位置、不清楚列车的发车间隔,有效运用交通大数据可以很好地解决上述问题。例如,各大地图导航,将历史数据、实时数据、道路情况进行分析,预测从当前地点到达目的地的时间,给用户提供多种不同组合的选择,并推荐时间最短的组合。通过对用户的引导,极大地缓解了交通压力。常见的交通大数据的应用场景如下。交通大数据的应用交通大数据一个主要应用就是将路面采集数据、城市交通参与车辆的GPS数据与电子地图定位导航数据进行多元融合和加工,生产出高准确率和高覆盖率的实时路况信息。对于时效性要求较高的生鲜农产品冷链物流配送,可利用配送管理信息系统,通过交通大数据平台获取道路、实时路况等信息来管理和指挥在途车辆进行配送。同时客户也可通过此平台对车辆和货物进行查询并反馈信息。车辆将路况、位置等信息反馈给配送管理信息系统。与此同时,客户、车辆甚至配送方的数据和信息也将通过冷链配送管理信息系统和交通大数据平台被公共数据云收集。农产品冷链物流互联网租赁自行车可以深入城市角落,弥补其他出行方式的服务空白,其便捷的租还、支付方式和高分布密度等优势,提高了使用者的出行体验和出行效率,受到广大用户的喜爱。然而自20世纪90年代以来,以机动车为导向的城市发展,逐渐挤压自行车骑行与停放空间。互联网租赁自行车的发展影响着居民的出行行为,也推动着城市规划和管理者对城市空间和道路资源的重新认识。同时,互联网租赁自行车出行产生的大量基于时间和位置的数据为描述和理解城市空间结构提供了新的途径。因此,有必要通过对骑行大数据的时间和空间分析,揭示骑行需求规律,为城市相关规划建设、行业管理部门和运营企业合作建立科学的投放与管理机制等提供技术支撑。自行车租赁伴随着我国经济的飞速发展,汽车保有率不断提高,随之也涌现出了大量的环境问题、空间问题以及至关重要的安全问题。数量庞大的汽车和复杂的驾驶环境为人工智能的应用提供了海量数据。通过布置于车辆上的传感器收集路面路况信息,利用算法挖掘出有效数据,分析驾驶员的驾驶习惯,将其运用到自动驾驶之中可以实现安全高效的通行。汽车自动驾驶随着中国城镇化的快速发展,城市人口数量急剧增加,城市公共交通面临着前所未有的压力。城市公共交通具有大容量、低碳环保等优势,是缓解城市交通压力,解决城市居民出行问题的最佳选择。但传统公交系统存在信息化、智能化水平较低,公交路线规划不合理、服务水平较低等缺点,导致城市公交可达性较差,已难以满足日益发展的城市出行需求。利用交通大数据优化公交车站点的设置,提高了百姓的出行效率和乘车体验,也提高了城市居民的幸福指数。公交车站点设置航空交通具有时效快的优势,对于长距离旅途而言有非常重要的意义,尤其是在目前的社会环境中,人们生活水平有了进一步的提升,这为航空公司规模的扩大提供了基础。为了满足当前的航空运输需要,需要对企业的发展做升级和优化。但是随着高铁、动车等铁路运输的兴建,航空公司同样也受到巨大冲击。民航的竞争除了中国3大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司、民营航空公司,甚至国外航空巨头。航空产品生产过剩,产品同质化特征愈加明显,于是航空公司从价格、服务间的竞争逐渐转向对客户的竞争。通过对航空公司客户数据进行分析,可以挖掘出隐藏的高价值用户。航空客户近年来,高速铁路以其快捷、准时、安全、环保的特点,在我国乃至世界范围内高速发展。随着我国高速铁路的路网规模逐步扩大和运营里程的增加,铁路旅客运输能力得到逐步释放,铁路旅客运输供不应求的局面得到缓解,铁路运输生产正逐步由粗放型向精细化转换。客流作为铁路运输组织的基础和关键因素,其分析工作是一个复杂的过程,如何对客流的分布特征及变化规律进行系统分析,掌握客流现状与变化趋势,对铁路开行方案、营销策略、客票销售等都具有重要意义。铁路运输第2章Python数据分析简介10-8月-231Python使用入门目录搭建Python开发平台2Python数据分析工具3小结4Python是一门简单易学且功能强大的编程语言。它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面向对象编程。Python优雅的语法和动态类型,再结合它的解释性,使其在大多数平台的许多领域成为编写脚本或开发应用程序的理想语言。要认识Python,首先得明确一点,Python是一门编程语言!这就意味着,至少原则上来说,它能够完成Matlab能够做的所有事情(因为大不了从头开始编写),而且大多数情况下,同样功能的Python代码会比Matlab代码更加简洁、易懂;而另一方面,因为它是一门编程语言,所以它能够完成很多Matlab不能做的事情,比如开发网页、开发游戏、编写爬虫来采集数据等。Python简介Python的简介Python以开发效率著称,也就是说它致力于以最短的代码完成同一个任务。Python通常为人诟病的是它的运行效率,而Python还被称为“胶水语言”,它允许我们把耗时的核心部分用C/C++等更高效率的语言编写,然后由它来“黏合”,这很大程度上已经解决了Python的运行效率问题。事实上,在大多数数据任务上,Python的运行效率已经可以媲美C/C++语言。Python简介Python的简介Python简介TIOBE编程语言排行榜Python简介编程语言的趋势图Python的官网:/本书使用Python3.6版本,本书的代码尽可能地同时兼容2.x和3.x,包括在各种第三方库也使用两个版本都兼容的扩展库。Python是跨平台的语言,因此脚本可以跨平台运行,然而不同的平台运行效率不一样,一般来说Linux下的速度会比Windows快,而且是对于数据分析和挖掘任务。此外,在Linux下搭建Python环境相对来说容易一些,很多Linux发行版自带了Python程序,并且在Linux下更容易解决第三方库的依赖问题。当然,Linux的操作门槛较高,入门的读者可以先在Windows熟悉,然后再考虑迁移到Linux下。搭建Python开发平台Python版本及操作系统选择在Windows下安装Python比较容易,直接到官方网站下载相应的msi安装包安装即可,和一般软件的安装无异,在此不赘述。安装包还分32位和64位版本,请读者自行选择适合的版本。大多数Linux发行版,如CentOs、Debian、Ubuntu等,都已经自带了Python2.x的主程序,但Python3.x版本的主程序需要自行另外安装。安装Python核心程序只是第一步,为了实现更丰富的科学计算功能,还需要安装一些第三方的扩展库,这对于一般的读者来说可能显得比较麻烦,尤其是在Windows下还可能出现各种错误。幸好,已经有人专门将科学计算所需要的模块都编译好,然后打包以发行版的形式供用户使用,Anaconda就是其中一个常用的科学计算发行版。搭建Python开发平台Python的安装Anaconda的特点:1、包含了众多流行的科学、数学、工程、数据分析的Python包2、完全开源和免费3、额外的加速、优化是收费的,但对于学术用途可以申请免费的License4、全平台支持:Linux、Windows、Mac;支持Python2.6、2.7、3.3、3.4,可自由切换因此,推荐初级读者(尤其是Windows下的读者)安装此Python发行版。读者只需要到官方网站下载安装包安装:http://continuum.io/downloads搭建Python开发平台Python的安装搭建Python开发平台Python启动界面1Python使用入门目录搭建Python开发平台2Python数据分析工具3小结4运行方式运行Python代码有两种方式,一种方式是启动Python,然后在命令窗口下直接输入相应的命令;另外就是将完整的代码写成.py脚本,如hello.py,然后通过pythonhello.py执行。基本命令基本运算认识Python的第一步,是可以把它当作一个方便的计算器来看待。a=2a*2a**2以上是Python几个基本的运算,第一个是赋值运算,第二是乘法,最后是一个是幂(即a2),这些基本上是所有编程语言通用的。不过Python支持多重赋值:a,b,c=2,3,4基本命令基本运算不过Python支持多重赋值:a,b,c=2,3,4这句命令相当于:a=2b=3c=4基本命令基本运算

Python支持对字符串的灵活操作:基本命令判断与循环判断和循环是所有编程语言的基本命令,Python的判断语句如下:需要特别指出的是,Python一般不用花括号{},也没有end语句,它是用缩进对齐作为语句的层次标记。同一层次的缩进量要一一对应,否则报错。if条件1:

语句2elif条件3:

语句4else:

语句5基本命令判断与循环

Python的循环也相应地有for循环和while循环,如while循环:

以及for循环:s,k=0whilek<101:#该循环过程就是求1+2+3+...+100k=k+1s=s+kprintss=0forkinrange(101):#该循环过程也是求1+2+3+...+100s=s+kprints基本命令判断与循环

in是一个非常方便、而且非常直观的语法,用来判断一个元素是否在列表/元组中,range用来生成连续的序列,一般语法为range(a,b,c),表示以a为首项、c为公差且不超过b-1的等差数列,如:s=0ifsinrange(4):printu's在0,1,2,3中'ifsnotinrange(1,4,1):printu's不在1,2,3中'基本命令函数

Python用def来自定义函数:Python的函数返回值可以是各种形式,比如返回列表,甚至返回多个值:defadd2(x):returnx+2printadd2(1)#输出结果为3defadd2(x=0,y=0):#定义函数,同时定义参数的默认值return[x+2,y+2]#返回值是一个列表defadd3(x,y):returnx+3,y+3#双重返回a,b=add3(1,2)#此时a=4,b=5基本命令函数

Python支持用lambda对简单的功能定义“行内函数”,这有点像Matlab中的“匿名函数”:f=lambdax:x+2#定义函数f(x)=x+2g=lambdax,y:x+y#定义函数g(x,y)=x+y数据结构Python有四个内建的数据结构——List(列表)、Tuple(元组)、Dictionary(字典)以及Set(集合),它们可以统称为容器(container),因为它们实际上是一些“东西”的组合而成的结构,而这些“东西”,可以是数字、字符甚至是列表,或者是它们之间几种的组合。通俗地讲,容器里边是什么都行,而且容器里边的元素类型不要求相同。数据结构列表/元组从外形上看,列表与元组的区别是,列表是用方括号标记的,如a=[1,2,3],而元组是用圆括号标记的,如b=(4,5,6),访问列表和元组中的元素的方式都是一样的,如a[0]等于1,b[2]等于6,等等。c=[1,'abc',[1,2]]'''c是一个列表,列表的第一个元素是整型1,第二个是字符串'abc',第三个是列表[1,2]'''数据结构列表/元组从功能上看,列表与元组不同的区别是,列表可以被修改,而元组不可以。比如,对于a=[1,2,3],那么语句a[0]=0,就会将列表a修改为[0,2,3],而对于元组b=(4,5,6),语句b[0]=1就会报错。要注意的是,如果已经有了一个列表a,同时想复制a,命名为变量b,那么b=a是无效的,这时候b仅仅是a的别名(或者说引用),修改b也会修改a的。正确的复制方法应该是b=a[:]。跟列表有关的函数是list,跟元组有关的函数是tuple,它们的用法和功能几乎一样,都是将某个对象转换为列表/元组,如list('ab')的结果是['a','b'],tuple([1,2])的结果是(1,2)。数据结构列表/元组一些常见的与列表/元组相关的函数:数据结构列表/元组作为对象来说,列表本身自带了很多实用的方法:数据结构字典特别地,Python引入了“字典”这一方便的概念。从数学上来讲,它实际上是一个映射。通俗来讲,它也相当于一个列表,然而它的“下标”不再是以0开头的数字,而是自己定义的“键”(Key)。创建一个字典的基本方法为:这里的'today'、'tomorrow'就是字典的键,它在整个字典中必须是唯一的,而20、30就是键对应的值。d={'today':20,'tomorrow':30}数据结构字典还有其他一些比较方便的方法来创建一个字典,如通过dict()函数转换,或者通过dict.fromkeys来创建:dict([['today',20],['tomorrow',30]])#也相当于{'today':20,'tomorrow':30}dict.fromkeys(['today','tomorrow'],20)#相当于{'today':20,'tomorrow':20}数据结构集合Python内置了集合这一数据结构,跟数学上的集合概念基本上是一致的,它跟列表的区别在于:1、它的元素的不重复的,而且是无序的;2、它不支持索引。一般我们通过花括号{}或者set()函数来创建一个集合:s={1,2,2,3}#注意2会自动去重,得到{1,2,3}s=set([1,2,2,3])#同样地,它将列表转换为集合,得到{1,2,3}数据结构集合由于集合的特殊性(特别是无序性),因此集合有一些特别的运算:a=t|s#t和s的并集

b=t&s#t和s的交集

c=t–s#求差集(项在t中,但不在s中)

d=t^s#对称差集(项在t或s中,但不会同时出现在二者中)数据结构函数式编程函数式编程(Functionalprogramming)或者函数程序设计,又称泛函编程,是一种编程范型,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。简单来讲,函数式编程是一种“广播式”的编程,一般来说结合前面提到过的lambda定义函数,用于科学计算中,会显得特别简洁方便。在Python中,函数是编程主要有几个函数的使用构成:lambda、map、reduce、filter,其中lambda前面已经介绍过,主要用来自定义“行内函数”,所以现在我们逐一介绍后三个。数据结构函数式编程首先map函数。假设我们有一个列表a=[1,2,3],我要给列表中的每个元素都加2得到一个新列表,利用前面已经谈及过的“列表解析”,我们可以这样写:而利用map函数我们可以这样写:我们首先定义一个函数,然后再用map命令将函数逐一应用到(map)列表中的每个元素,最后返回一个数组。b=[i+2foriina]b=map(lambdax:x+2,a)b=list(b)#结果是[3,4,5]数据结构函数式编程接着是reduce,它有点像map,但map用于逐一遍历,而是reduce用于递归计算。先给出一个例子,这个例子可以算出n的阶乘:其中range(1,n+1)相当于给出了一个列表,元素是1~n这n个整数。lambdax,y:x*y构造了一个二元函数,返回两个参数的乘积。reduce命令首先将列表的头两个元素作为函数的参数进行运算,然后将运算结果与第三个数字作为函数的参数,然后再将运算结果与第四个数字作为函数的参数…依此递推,直到列表结束,返回最终结果。reduce(lambdax,y:x*y,range(1,n+1))数据结构函数式编程最后是filter,顾名思义,它是一个过滤器,用来筛选出列表中符合条件的元素,如:使用filter首先需要一个返回值为bool型的函数,如上述的lambdax:x>5andx<8定义了一个函数,判断x是否大于5且小于8,然后将这个函数作用到range(10)的每个元素中,如果为True,则“挑出”那个元素,最后将满足条件的所有元素组成一个列表返回。b=filter(lambdax:x>5andx<8,range(10))b=list(b)#结果是[6,7]库的导入与添加库的导入Python本身内置了很多强大的库,如数学相关的math库,可以为我们提供更加丰富复杂的数学运算:导入库的方法,除了直接“import库名”之外,还可以为库起一个别名:importmathmath.sin(1)#计算正弦math.exp(1)#计算指数math.pi#内置的圆周率常数importmathasmm.sin(1)#计算正弦库的导入与添加库的导入此外,如果并不需要导入库中的所有函数,可以特别指定导入函数的名字:直接地导入库中的所有函数:frommathimportexpase#只导入math库中的exp函数,并起别名ee(1)#计算指数sin(1)#此时sin(1)和math.sin(1)都会出错,因为没被导入frommathimport*#直接的导入,也就是去掉math.,但如果大量地这样引入第三库,就容易引起命名冲突。exp(1)sin(1)库的导入与添加导入future特征(For2.x)Python2.x与3.x之间的差别不仅仅在内核上,也部分地表现在代码的实现中。比如,在2.x中,print是作为一个语句出现的,用法为printa;但是在3.x中,它是作为函数出现的,用法为print(a)。为了保证兼容性,本书的基本代数是使用3.x的语法编写的,而使用2.x的读者,可以通过引入future特征的方式兼容代码,如:#将print变成函数形式,即用print(a)格式输出from__future__importprint_function

#3.x的3/2=1.5,3//2才等于1;2.x中3/2=1from__future__importdivision库的导入与添加添加第三方库Python自带了很多库,但不一定可以满足我们的需求。就数据分析和数据挖掘而言,还需要添加一些第三方的库来拓展它的功能。安装第三方库一般有以下几种思路:1Python使用入门目录搭建Python开发平台2Python数据分析工具3小结4Python数据分析工具Python本身的数据分析功能不强,需要安装一些第三方扩展库来增强它的能力。本书用到的库有Numpy、Scipy、Matplotlib、Pandas、Scikit-Learn、Keras、Gensim等,下面将对这些库的安装和使用进行简单的介绍。Python数据分析工具Numpy。Python并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量较大时,使用列表的速度就会慢得难以接受。为此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。Numpy还是很多更高级的扩展库的依赖库,我们后面介绍的Scipy、Matplotlib、Pandas等库都依赖于它。值得强调的是,Numpy内置函数处理数据的速度是C语言级别的,因此在编写程序的时候,应当尽量使用它们内置的函数,避免效率瓶颈的现象(尤其是涉及到循环的问题)。Python数据分析工具Numpy。在Windows中,Numpy安装跟普通的第三方库安装一样,可以通过pip安装:pipinstallnumpy也可以自行下载源代码,然后使用以下方式安装:pythonsetup.pyinstall在Linux下上述方面也是可行的,此外,很多Linux发行版的软件源中都有Python常见的库,因此还可以通过Linux自带的软件管理器安装,如在Ubuntu下可以用如下方式安装:sudoapt-getinstallpython-numpyPython数据分析工具ScipyNumpy提供了多维数组功能,但它只是一般的数组,并不是矩阵,比如当两个数组相乘时,只是对应元素相乘,而不是矩阵乘法。Scipy提供了真正的矩阵,以及大量基于矩阵运算的对象与函数。SciPy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算,显然,这些功能都是挖掘与建模必备的。Python数据分析工具ScipyScipy依赖于Numpy,因此安装它之前得先安装好Numpy。安装Scipy的方式与安装Numpy的方法大同小异,需要提及的是,在Ubuntu下也可以用类似的安装Scipy。sudoapt-getinstallpython-scipyPython数据分析工具MatplotlibMatplotlib是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图。它不仅提供了一整套和Matlab相似但更为丰富的命令,让我们可以非常快捷地用Python可视化数据,而且允许输出达到出版质量的多种图像格式。Matplotlib的安装并没有什么特别之处,可以通过pipinstallmatplotlib安装或者自行下载源代码安装,在Ubuntu下也可以用类似的安装。sudoapt-getinstallpython-matplotlib注意Matplotlib的上级依赖库相对较多,手动安装的时候,需要逐一把这些依赖库都安装好。Python数据分析工具Matplotlib如果读者使用的是中文标签,就会发现中文标签无法正常显示。这是因为Matplotlib的默认字体是英文字体所致,解决它的办法是在作图之前手动指定默认字体为中文字体,如黑体(SimHei):plt.rcParams['font.sans-serif']=['SimHei']#这两句用来正常显示中文标签其次,保存作图图像时,负号有可能显示不正常,可以通过以下代码解决:plt.rcParams['axes.unicode_minus']=False#解决保存图像是负号'-'显示为方块的问题Python数据分析工具PandasPandas是Python下最强大的数据分析和探索工具(貌似没有之一)。它包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单。Pandas建造在NumPy之上,它使得以NumPy为中心的应用很容易使用。Pandas的名称来自于面板数据(paneldata)和python数据分析(dataanalysis),它最初被作为金融数据分析工具而开发出来,由AQRCapitalManagement于2008年4月开发,并于2009年底开源出来。Pandas的功能非常强大,支持类似SQL的数据增、删、查、改,并且带有丰富的数据处理函数;支持时间序列分析功能;支持灵活处理缺失数据;等等。Python数据分析工具安装:Pandas的安装相对来说比较容易一些,只要安装好Numpy之后,就可以直接安装了,通过pipinstallpandas或下载源码后pythonsetup.pyinstall安装均可。由于我们频繁用到读取和写入Excel,但默认的Pandas还不能读写Excel文件,需要安装xlrd(读)和xlwt(写)库才能支持Excel的读写:pipinstallxlrd#为Python添加读取Excel的功能pipinstallxlwt#为Python添加写入Excel的功能Python数据分析工具使用:首先,Pandas基本的数据结构是Series和DataFrame,Series顾名思义就是序列,类似一维数组,DataFrame则是相当于一张二维的表格,类似二维数组,它的每一列都是一个Series。为了定位Series中的元素,Pandas提供了Index这一对象,每个Series都会带有一个对应的Index,用来标记不同的元素,Index的内容不一定是数字,也可以是字母、中文等,它类似于SQL中的主键。类似地,DataFrame相当于多个带有同样Index的Series的组合(本质是Series的容器),每个Seiries都带有一个唯一的表头,用来标识不同的Series。#-*-coding:utf-8-*-importpandasaspd#通常用pd作为pandas的别名。

s=pd.Series([1,2,3],index=['a','b','c'])#创建一个序列sd=pd.DataFrame([[1,2,3],[4,5,6]],columns=['a','b','c'])#创建一个表d2=pd.DataFrame(s)#也可以用已有的序列来创建表格

d.head()#预览前5行数据d.describe()#数据基本统计量

#读取文件,注意文件的存储路径不能带有中文,否则读取可能出错。pd.read_excel('data.xls')#读取Excel文件,创建DataFrame。pd.read_csv('data.csv',encoding='utf-8')#读取文本格式的数据,一般用encoding指定编码。Python数据分析工具StatsModelsPandas着眼于数据的读取、处理和探索,而StatsModels则更加注重数据的统计建模分析,它使得Python有了R语言的味道。StatsModels支持与Pandas进行数据交互,因此,它与Pandas结合,成为了Python下强大的数据挖掘组合。安装StatsModels相当简单,既可以通过pip安装,又可以通过源码安装,对于Windows用户来说,官网上甚至已经有编译好的exe文件供下载。如果手动安装的话,需要自行解决好依赖问题,StatModel依赖于Pandas(当然也依赖于Pandas所依赖的),同时还依赖于pasty(一个描述统计的库)。Python数据分析工具Scikit-LearnScikit-Learn是Python下强大的机器学习工具包,它提供了完善的机器学习工具箱,包括数据预处理、分类、回归、聚类、预测、模型分析等。Scikit-Learn依赖于NumPy、SciPy和Matplotlib,因此,只需要提前安装好这几个库,然后安装Scikit-Learn就基本上没有什么问题了,安装方法跟前几节一样,要不就是pipinstallscikit-learn安装,要不就是下载源码自己安装。Python数据分析工具使用:所有模型提供的接口有:

model.fit():训练模型,对于监督模型来说是fit(X,y),对于非监督模型是fit(X)监督模型提供:

model.predict(X_new):预测新样本

model.predict_proba(X_new):预测概率,仅对某些模型有用(比如LR)

model.score():得分越高,fit越好非监督模型提供:

model.transform():从数据中学到新的“基空间”。

model.fit_transform():从数据中学到新的基并将这个数据按照这组“基”进行转换。Python数据分析工具KerasScikit-Learn已经足够强大了,然而它并没有包含一种强大的模型——人工神经网络。人工神经网络是功能相当强大的、但是原理又相当简单的模型,在语言处理、图像识别等领域都有重要的作用。近年来逐渐火起来的“深度学习”算法,本质上也就是一种神经网络,可见在Python中实现神经网络是非常必要的。本书用Keras库来搭建神经网络。事实上,Keras并非简单的神经网络库,而是一个基于Theano的强大的深度学习库,利用它不仅仅可以搭建普通的神经网络,还可以搭建各种深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等等。由于它是基于Theano的,因此速度也相当快。Python数据分析工具安装:安装Keras之前首先需要安装Numpy、Scipy、Theano。安装Theano首先需要准备一个C++编译器,这在Linux下是自带的。因此,在Linux下安装Theano和Keras都非常简单,只需要下载源代码,然后用pythonsetup.pyinstall安装就行了,具体可以参考官方文档。Python数据分析工具安装:可是在Windows下就没有那么简单了,因为它没有现成的编译环境,一般而言是先安装MinGW(Windows下的GCC和G++),然后再安装Theano(提前装好Numpy等依赖库),最后安装Keras,如果要实现GPU加速,还需要安装和配置CUDA(天下没有免费的午餐,想要速度、易用两不误,那么就得花点心思)。值得一提的是,在Windows下的Keras速度会大打折扣,因此,想要在神经网络、深度学习做更深入研究的读者,请在Linux下搭建相应的环境。Python数据分析工具使用:用Keras搭建神经网络模型的过程相当简洁,也相当直观,它纯粹地就像搭积木一般。我们可以通过短短几十行代码,就可以搭建起一个非常强大的神经网络模型,甚至是深度学习模型。如简单搭建一个MLP(多层感知器):要注意的是,Keras的预测函数跟Scikit-Learn有所差别,Keras用model.predict()方法给出概率,model.predict_classes()给出分类结果。#-*-coding:utf-8-*-fromkeras.modelsimportSequentialfromkeras.layers.coreimportDense,Dropout,Activationfromkeras.optimizersimportSGD

model=Sequential()#模型初始化model.add(Dense(20,64))#添加输入层(20节点)、第一隐藏层(64节点)的连接model.add(Activation('tanh'))#第一隐藏层用tanh作为激活函数model.add(Dropout(0.5))#使用Dropout防止过拟合model.add(Dense(64,64))#添加第一隐藏层(64节点)、第二隐藏层(64节点)的连接model.add(Activation('tanh'))#第二隐藏层用tanh作为激活函数model.add(Dropout(0.5))#使用Dropout防止过拟合model.add(Dense(64,1))#添加第二隐藏层(64节点)、输出层(1节点)的连接model.add(Activation('sigmoid'))#输出层用sigmoid作为激活函数

sgd=SGD(lr=0.1,decay=1e-6,momentum=0.9,nesterov=True)#定义求解算法pile(loss='mean_squared_error',optimizer=sgd)#编译生成模型,损失函数为平均误差平方和

model.fit(X_train,y_train,nb_epoch=20,batch_size=16)#训练模型score=model.evaluate(X_test,y_test,batch_size=16)#测试模型Python数据分析工具GensimGensim是用来处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等,这些领域的任务往往需要比较多的背景知识。需要一提的是,Gensim把Google在2013年开源的著名的词向量构造工具Word2Vec编译好了,作为它的子库,因此需要用到Word2Vec的读者也可以直接用Gensim而无需自行编译了。据说Gensim的作者对Word2Vec的代码进行了优化,所以它在Gensim下的表现据说比原生的Word2Vec还要快。(为了实现加速,需要准备C++编译器环境,因此,建议用到Gensim的Word2Vec的读者在Linux下环境运行。)1Python使用入门目录搭建Python开发平台2Python数据分析工具3小结4本章主要对Python进行简单介绍,包括软件安装、使用入门及相关注意事项和Python数据分析及挖掘相关工具箱。由于Python包含有多个领域的扩展库,而且扩展库的功能也相当丰富,本章只介绍了与数据分析及数据挖掘相关的一小部分,包括高维数组、数值计算、可视化、机器学习、神经网络和语言模型等。这些扩展库里面包含的函数在后续章节中会进行实例分析,通过在Python平台上完成实际案例来掌握数据分析和数据挖掘的原理,培养读者应用数据分析和挖掘技术解决实际问题的能力。小结了解常见的数据来源1间接来源目录直接来源2巧妇难为无米之炊。如果没有数据,那么在进行数据分析时将寸步难行。不同来源、不同类型的数据可能会导致分析结果千差万别,了解数据的采集也显得至关重要。本章着重介绍了常见数据来源、交通信息的分类、特点和相关采集技术、常见的数据类型以及数据的读取方式。数据获取数据可以从业务系统、网络爬虫、公共数据集等多种数据来源中获取。从数据的获取方式上可大致分为直接来源和间接来源两种。了解常见的数据来源直接来源是来源于本人或本公司直接记录、调查或实验的结果,又称为第一手数据。最为常见的直接来源为存储在公司业务系统数据库中的数据,这些数据通常由公司的日常运营以及活动产生,是最直接也是最容易获取的数据来源。另一种常见的数据直接来源为问卷调查,主要采用将结构式的调查问卷与抽查法相结合的形式,问卷调查越来越多地被用于定量研究,并成为社会科学研究的主要方式之一。直接来源1间接来源目录直接来源2间接来源是来源于别人调查或实验的数据,又称为第二手数据。由于个人和商业公司的力量有限,因此一些宏观数据需要由专门的大型调查公司或政府部门来提供,这些数据的来源渠道也比较多,如报纸、书籍、统计年鉴、相关网站及专业调查公司等。如果调查的领域专业性较强,那么需要查阅相关的专业性网站提供的数据,或使用搜索引擎的高级搜索功能完成。间接来源数据获取1常见的信息采集技术目录了解交通信息的采集2对于智能交通系统而言,无论是静态还是动态基础交通信息都是其主要组成部分。而不同的交通信息采集技术可以采集到不同类型的交通信息。为加深对交通信息的了解,以下将简要介绍不同类别的交通信息、交通信息的特点以及常见的交通信息采集技术。了解交通信息的采集智能交通系统(ITS)所需要的信息是多方面、多层次的,其中一些信息并不能直接获得,需要通过对一些基础交通信息进行处理才能得到。如对路网交通状态的估计和对交通事件的估计等,这些交通信息就是通过对交通流数据、车辆速度、道路参数等数据进行综合处理之后才能得到。那么这些状态估计信息是否能够得到、是否能够满足实际应用的要求,在很大程度上取决于那些实时采集上来的基础交通信息是否可靠、准确和及时。“基础”一般意义上讲是建筑物的根基,也可以理解是一个系统的最根本或最起点的部分,是系统中其他部分的支撑。交通信息的分类与特点基础是否坚固决定着一个系统是否稳定和可靠。基础交通信息应该是智能交通系统里最基本、最直接的数据,基础交通信息的来源、质量和内容等在很大程度上决定了交通信息处理系统的效率和效果。基础交通信息是交通管理者和交通参与者为了更好地管理交通、更好地利用交通资源而采集的交通信息。它是交通信息系统的基本数据来源,反映交通系统的基本属性。确切地说,基础交通信息是通过各种渠道采集到的未经过加工的交通参数、路网参数等数据。交通信息管理系统可以根据不同用户的不同要求对基础交通信息进行加工处理,生成对用户有决策价值的交通信息。交通信息的分类与特点基础交通信息按照其变化的频率不同可以大致分成静态基础交通信息和动态基础交通信息两大类。静态基础交通信息主要包括以下几种。城市基础地理信息(路网分布、功能小区的划分、交叉口的布局、停车场分布、交通枢纽的布局、城市基础交通设施信息等)。城市道路网基础信息(道路技术等级、长度、宽度、车道数、收费、立交连接方式等)。各种车辆保有量信息(包括分区域、分时间、分车种车辆保有量信息等)。交通管理信息,如单向行使、禁止左转、限制进入(分时间限制进入管制和空间限制进入管制)、道路施工信息等。交通信息的分类与特点动态基础交通信息主要包括以下几种。交通流状态特征信息(如车流量、速度、密度等)。交通紧急事件信息(各种途径得到的事件信息,包括路面检测器信息、人工报告信息等)。在途车辆及驾驶员的实时信息(如各种车辆定位信息等)。环境状况信息(大气状况、污染状况信息,为出行计划提供选择条件)。交通动态控制管理信息等。不论是静态还是动态基础交通信息都是ITS不可缺少的信息来源。交通信息的分类与特点动态交通信息的采集和处理是智能交通研究的重点,也是信息技术在ITS应用的基础。动态交通信息的采集方式、获取手段、采集精度、采集成本等因素,对于实现ITS的各项功能非常重要。目前,国内外正在研究先进的交通信号控制系统、车路协同系统、无人驾驶系统等,都是利用交通信息的结果。按照信息论的观点,信息的价值主要在于它的决策价值,也就是说,信息对于人们做决策是有意义的,尤其是对管理者做出正确的决策是有价值的。如果信息不能对决策人的决策产生任何影响,那么它就不能被叫做信息。交通信息也是如此,它应该对做出各方面、各层次的交通管理决策是有价值的。交通信息的分类与特点从这个角度来说,交通信息应该具备以下表格的基本特征。交通信息的分类与特点基本特征概述准确性对于交通信息而言,准确性是尤其重要的。准确的信息对正确的决策才有正面的影响,才有价值。而不准确或不正确的信息不但对决策没有价值,还会对决策产生负面的影响及时性及时的信息对做出正确的决策才是有意义的,而过时的信息对决策是无用的。比如,自适应式交通信号控制周期的变化需要根据实时的交通流量等数据来进行计算共享性交通信息是智能交通系统(ITS)中各子系统所需要的共同信息,因此,交通信息应该可以为各子系统所利用,这就要求交通信息具有统一的数据标准,统一的采集格式和提供方式实时性和动态性必须是实时的、动态的采集交通信息的基本数据,这样的数据才能满足交通管理与控制、车辆诱导、交通安全、交通监控等功能的需要,才是有意义的信息海量性由于交通系统是一个复杂庞大的系统,路网复杂,再加上实时、动态的采集、处理、传输、发布的要求,所以数据采集量、传输量、处理量、发布量都非常庞大1常见的信息采集技术目录了解交通信息的采集2交通信息是交通数据分析的重要前提,不同的信息采集方式得到的数据也大相径庭。常见的交通信息采集技术有地感线圈传感器、图像传感器、微波雷达传感器、地磁传感器等。常见的交通信息采集技术地感线圈是一种基于电磁感应原理的车辆检测方式,可以检测交通流量、占有率、速度等交通数据。在路面挖出圆形或矩形的沟槽中埋入导线,构成环形地感线圈,并且通以一定的工作电流形成一个电磁场。车辆具有铁磁性质,通过或停留在线圈上时切割磁通线,线圈的电感量改变,使得振荡电路中的振荡频率和相位也发生相应大小的改变。通过变化量可以感知车辆的通过,通过信号产生和结束的时间间隔来测量汽车的速度。地磁线传感器图像检测类传感器普遍安装于车辆速度较慢的进出路口,利用视频、计算机和通信等技术手段。实现对指定地点的交通流量、车辆速度、占有率、车辆是否违章等交通信息的采集。视频检测是由摄像机、图像处理器和可以将采集到的图像信息转化为交通流信息的软件构成的系统,通常架设在线杆或桥梁上、对连续视频图像进行分析处理。一台摄像机可观测多车道,一个视频检测系统可同时处理多个摄像机传输的数据。图像传感器微波雷达检测技术基于多普勒效应,传感器发出的微波在碰到障碍物反射回来时由于物体的运动状态不同而接收到不同频率的反射波,通过频率发生的变化量可以计算出车辆的信息。微波雷达传感器配合高速摄像机,一般安装于车辆速度较快且方向单一的高速路上。也可以安装在卡口处、桥梁上、隧道中和红绿灯控制系统上对移动的车辆进行抓拍,采集车流量、车速、车型、占有率、是否超速等信息。微波雷达传感器在一定区域内,地球的磁场强度基本是恒定的。当有车辆进入后,由于汽车是具备导磁能力的铁磁性物质,所以该区域的磁场强度将会发生变化,这就是地磁传感器的基本工作原理。不论汽车的运动状态如何,汽车具有的铁磁性物质必定会影响地磁场,再经过信号分析,即可得到想要获得的检测目标的相关信息。利用地磁传感器可以进行车辆有无、行驶方向、行驶速度、车辆型号、车流量等数据的采集。地磁传感器了解数据的常见类型1半结构化数据目录结构化数据2非结构化数据3数据的类型多种多样,按照数据的结构可分为结构化数据、半结构化数据和非结构化数据。结构化数据的表现形式为二维的列表结构,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。结构化数据由行和列构成,通常每一行对应一条记录,每一列对应一个属性,同一个表中的数据具有相同的属性集,即同一张表中所有记录的列的个数是一致的。一个结构化数据的例子,如下表所示。结构化数字IDSexbodyTypecreatDate1男020160309表中展示了一条结构化的汽车交易记录,ID列表示该交易的编号为1,通常为数值型或字符型。Sex列表示该客户的性别为男性,通常为字符型;bodyType列的0表示该车的车型是豪华轿车,为数值型。creatDate列表示该客户的消费时间为2016年3月9日,通常为字符型或时间型。结构化数据主要应用于各类业务系统的关系型数据库中,其存储需求包括高速存储应用需求、数据备份需求、数据共享需求以及数据容灾需求等。结构化数字1半结构化数据目录结构化数字2非结构化数据3半结构化数据是结构化数据的一种特殊形式,是以树或图的数据结构存储的数据,其结构并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构。半结构化数据包含相关标记,用来分隔语义元素以及对记录和字段进行分层,这种结构也被称为自描述的结构。半结构化数据的数据库是节点的集合,每个节点都是一个叶子节点或一个内部节点。叶子节点与数据相关,数据的类型可以是任意原子类型,如数字和字符串。每个内部节点至少有一条外向的弧。每条弧都有一个标签,该标签指明弧开始处的节点与弧末端的节点之间的关系。半结构化数据一个名为根的内部节点没有进入的弧,它代表整个数据库。每个节点都从根可达整个图的结构未必是一棵树。常见的半结构化数据格式有XML和JSON。一个XML文件中的记录,可以看到两条记录的属性个数是不一样的。第一条记录有name、age和gender三个属性,而第二条记录只有name和gender两个属性。半结构化文件记录的属性个数是可以变动的,这点与结构化数据要求数据必须具有相同的属性集不同,使得半结构化数据具有更好的灵活性。半结构化数据半结构化数据包括邮件、HTML、报表、资源库等,常见的应用场景有邮件系统、WEB集群、教学资源库和档案系统等。这些应用的存储要求主要有数据存储、数据备份、数据共享以及数据归档等。半结构化数据1半结构化数据目录结构化数字2非结构化数据3非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。常见的非结构化数据包括办公文档、文本、图像、音频、视频等。非结构化数据的格式非常多样,标准也具有多样性,在技术上非结构化信息比结构化信息更难标准化和理解。其存储、检索、发布以及利用需要更加智能化的IT技术。常见具体应用有医疗影像系统、教育视频点播、视频监控、地理信息系统、设计院、文件服务器(PDM/FTP)、媒体资源管理等。非结构化数据非结构化数据常见具体应用有。医疗影像系统。教育视频点播。视频监控。地理信息系统。设计院。文件服务器(PDM/FTP)。媒体资源管理等。非结构化数据掌握数据的读取方式1读取文件数据目录读取数据库数据2常见的数据储存媒介有数据库和文件,以下介绍如何读取数据库数据和文件数据。在生产环境中,绝大多数的数据都存储在数据库中。想要读取数据库中的数据需要先与数据库建立连接。数据库连接是分析工具与数据库之间的通道,只有建立数据库连接后,用户才能对数据库中的数据进行操作。Python也需要与数据库建立连接后才能读取数据库中的数据,一个常用建立连接的方法为通过SQLAlchemy库并配合相应数据库的Python连接工具。读取数据库数据不同的数据库需要选择对应的连接工具,如MySQL数据库需要安装mysqlclient或pymysql库,Oracle数据库需要安装cx_oracle库。SQLAlchemy库支持与MySQL、postgresql、Oracle、SQLServer和SQLite等主流数据库建立连接。建立连接时需要提供数据库产品名、连接工具名、用户名、密码、数据库IP地址、数据库端口号、数据库名称。同时还需要注意数据库中使用的数据编码,使用错误的编码会导致乱码问题。使用SQLAlchemy连接MySQL数据库,与数据库进行连接后,可以与数据库进行交互,对数据库中的数据进行操作。读取数据库数据使用SQLAlchemy连接MySQL数据库,与数据库进行连接后,可以与数据库进行交互,对数据库中的数据进行操作。常见的操作包括读取、存储以及增、删、改、查等,通过pandas库对数据库进行读取和存储操作,得到结果。读取数据库数据1读取文件数据目录读取数据库数据2另一种常见的数据载体是文本文件,文本文件是一种由若干行字符构成的计算机文件,它是一种典型的顺序文件。常见的有TXT文件和CSV文件,这两种文件的主要区别是TXT文件使用空格分隔,而CSV是一种逗号分隔的文件格式。因为CSV文件分隔符不一定是逗号,所以又被称为字符分隔文件,文件以纯文本形式存储表格数据(数字和文本)。CSV是一种通用、相对简单的文件格式,最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的或无规范的格式)。读取文件数据因为大量程序都支持CSV或其变体,所以可以作为大多数程序的输入和输出格式。CSV文件根据其定义也是一种文本文件,在数据读取过程中可以使用文本文件的读取函数对CSV文件进行读取。使用read_table和read_csv函数读取CSV文件,读取文件时需要注意编码问题,常用的编码有utf-8、utf-16、gbk、gb2312、gb18030等。如果编码指定错误,那么数据将无法读取,IPython解释器会报解析错误。使用不同的参数读取二手车售价表,除了TXT文件和CSV文件外,Excel文件也是常见的需要读取的数据文件种类。读取文件数据Excel可以进行各种数据的处理、统计分析和辅助决策操作,被广泛地应用于管理、统计财经和金融等众多领域。其文件格式依照程序版本的不同分为以下两种。MicrosoftOfficeExcel2007之前的版本(不包括2007)默认保存的文件名后缀为.xls。MicrosoftOfficeExcel2007之后的版本默认保存的文件名后缀为.xlsx。通过pandas库读取xlsx格式的伦敦自行车租赁表,得到结果。读取文件数据本章主要对常见的数据来源进行了简要的介绍,常见的数据来源主要分为直接来源和间接来源两种。大致描述了交通信息的采集,如交通信息的分类和特点以及交通信息的采集技术。还介绍了常见的数据类型,包括结构化、半结构化和非结构化数据。最后介绍了数据的读取方式,主要包括读取数据库数据和读取文件数据。小结第3章数据探索10-8月-231数据特征分析目录数据质量分析2Python主要数据探索函数3统计作图函数4数据质量分析数据质量分析是数据预处理的前提,是数据挖掘分析结论有效性和准确性的基础,其主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据,在常见的数据挖掘工作中,脏数据包括:

缺失值

异常值

不一致的值

重复数据及含有特殊符号(如#、¥、*)的数据本小节将主要对数据中的缺失值、异常值和一致性进行分析。数据质量分析——缺失值产生的原因有些信息暂时无法获取,或者获取信息的代价太大。有些信息是被遗漏的。可能是因为输入时认为不重要、忘记填写或对数据理解错误等一些人为因素而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障等机械原因而丢失。属性值不存在。在某些情况下,缺失值并不意味着数据有错误,对一些对象来说属性值是不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入状况等。数据质量分析——缺失值的影响数据挖掘建模将丢失大量的有用信息数据挖掘模型所表现出的不确定性更加显著,模型中蕴涵的确定性成分更难把握包含空值的数据会使挖掘建模过程陷入混乱,导致不可靠的输出数据质量分析——缺失值分析对缺失值做简单统计分析统计缺失值的变量个数统计每个变量的未缺失数统计变量的缺失数及缺失率数据质量分析——异常值分析异常值分析是检验数据是否有录入错误以及含有不合常理的数据。忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,对结果会带来不良影响;重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点的分析。异常值分析方法主要有:简单统计量分析、3原则、箱型图分析。异常值分析——简单统计分析可以先做一个描述性统计,进而查看哪些数据是不合理的。需要的统计量主要是最大值和最小值,判断这个变量中的数据是不是超出了合理的范围,如身高的最大值为5米,则该变量的数据存在异常。异常值分析——3原则如果数据服从正态分布,在3原则下,异常值被定义为一组测定值中与平均值的偏差超过三倍标准差的值。在正态分布的假设下,距离平均值3之外的值出现的概率为

,属于极个别的小概率事件。异常值分析——箱型图分析箱形图依据实际数据绘制,不需要事先假定数据服从特定的分布形式,没有对数据作任何限制性要求,它只是真实直观地表现数据分布的本来面貌;另一方面,箱形图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的鲁棒性:多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不能对这个标准施加影响,箱形图识别异常值的结果比较客观。由此可见,箱形图在识别异常值方面有一定的优越性。一致性分析数据不一致性是指数据的矛盾性、不相容性。直接对不一致的数据进行挖掘,可能会产生与实际相违背的挖掘结果。在数据挖掘过程中,不一致数据的产生主要发生在数据集成的过程中,可能是由于被挖掘数据是来自于从不同的数据源、重复存放的数据未能进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论