大数据与人工智能导论(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-29 10:40:59

点击下载

作者:姚海鹏 王露瑶 刘韵洁

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

大数据与人工智能导论

大数据与人工智能导论试读:

前言

当人类开始发明计算机的时候,就已经在思考如何让计算机获取“智能”。如今,伴随着社会的日益数字化,人类社会进入大数据时代,海量的数据和云计算使人工智能进入一个快速发展期。作者在平时科研与教学中发现,许多学生对人工智能与大数据领域表现出了极大的兴趣。市面上虽然有许多优秀的相关类型的图书,然而,它们大部分都假设读者已经具备了很高的数学基础,这是许多学生尤其是非数学系的本科生所不具备的。除此之外,有的图书对细节介绍非常详尽,这使初学者容易陷入其中而忽视了整体。有的图书则完全介绍理论,也容易导致初学者不会学以致用。因此,作者萌生了写一本真正适合初学者的大数据与人工智能图书的想法,希望能指引更多有志于研究该领域的学习者少走一些弯路,顺利迈入人工智能的大门。

全书共7章,大体可分为4个部分。第一部分是第1~2章,介绍人工智能和大数据的基本知识;第二部分是第3~4章,介绍一些最经典而常用的机器学习算法和常用的大数据处理平台;第三部分是第5~6章,介绍一些进阶知识,包括一些机器学习算法的并行化实现和深度学习的内容;第四部分即第7章是实践部分,用案例来学习前面学习的算法是如何应用在实际中的。其中,第三部分的两章相对独立,读者可以根据自己的兴趣和时间情况选择使用。

作者认为,对于初学者而言,应该适当增加学习的广度而降低学习的深度。本书对数据工程、机器学习、大数据以及机器学习的并行化实现、深度学习均予以介绍,已经涵盖了大部分人工智能的基础性内容。需要指出的是,理论上机器学习只是人工智能的一种解决方案。然而,近年来,机器学习已经在人工智能领域中占据了绝对主导地位。因此本书作为一本旨在服务初学者的图书,并不会区分它们。作者在本书中试图尽可能地少使用数学知识,对于一些不可避免的部分,力求展现其中的精华,同时亦在本书的最后介绍了一些确实不可避免的线性代数以及概率论知识。作者在保证广度和淡化深度的同时,避免了罗列知识,而是有机地将各方面知识串接起来。对于应用实践部分,一些基础性编程语言的掌握是必不可少的,作者在附录中介绍了Java和Python,供有需要的读者阅读。

本书的作者都是在大数据和人工智能领域具有丰富教学实践经验或研究经验的专家,可以说凝结了多人的智慧和心血,其中北京邮电大学未来网络理论与应用实验室的姚海鹏副教授带领研究生团队编写了第 1、3、4、5、6、7 章,北京工业大学未来网络高精尖创新中心的王露瑶博士参与编写了第2章。中国工程院院士刘韵洁对本书做了重要的指导。全书由姚海鹏副教授通稿。

特别感谢北京邮电大学未来网络理论与应用实验室的研究生付丹阳、刘惠文、王淇艺、张博、陈旭、董理、刘冲以及北京工业大学未来网络高精尖创新中心的研究生李飞翔、买天乐、张贵娟、郭倩影、范春明、贾耀宗、张楠。他们为本书的调研、材料收集、书稿撰写做了大量的研究工作,同时也结合自身研究实际,为本书提出了大量建设性建议。

大数据和人工智能发展迅速,目前已发展成为多个学科。作为一本基础性教材,本书希望能够带领读者入门,为读者进一步在这个领域深造打下坚实的基础。作者自认为才疏学浅,同时编写书稿时间也比较仓促,书中个别谬误之处在所难免,还望相关专家学者批评指正。姚海鹏2017年7月于北京第1章绪论1.1 日益增长的数据

随着移动通信技术和智能终端设备的飞速发展,全球数据通信总量也逐年激增。一方面,由于数据产生方式发生了从手工生产到自动化生产的改变,人类为了实现对信息的全量化收集,大量使用传感器(目前全球有3 B~5 B个传感器),这些传感器24 h都在产生数据,加快了信息的爆发式增长;另一方面,由于人类活动越来越离不开数据,人类的日常生活已经与数据成为密不可分的整体。伴随着移动智能设备的普及(图 1-1 中的数据显示了近几年全球网络用户数量的变化),移动端的数据已经逐步增长并成为最主要的数据来源:社交通信中产生的文字、语音、图像、视频,生活应用中的位置信息、查询请求信息,娱乐购物产生的产品介绍信息、订单请求信息等无时无刻不在人们周围产生并传递。举例来说,Youtube上每天会有来自全球28.8 k小时的视频上传量,Twitter上每天大概会新增50 M条信息,亚马逊每天产生6.3 M笔订单……欧洲粒子物理研究所的大型强子对撞机,每秒产生的原始数据量高达40 TB。2000年斯隆数字巡天项目(SDSS,Sloan Digital Sky Survey)启动的时候,位于墨西哥州的望远镜在短短几周内收集到的数据比之前天文学历史上收集的数据总和还要多。从科研领域到医疗卫生领域,从银行业到互联网行业,各行各业都面临着需要解决爆发式增长的数据量的难题。图1-1 2008~2015年全球网络用户数目增长情况

根据南加州大学嫩伯格通信学院马丁的研究,人类在2007年存11储了超过300 EB的数据,也就是3×10GB的数据量(数据单位转化如表1-1所示),已经进入了数据海量激增的时代。人类存储信息量的增长速度比世界经济的增长速度快4倍,而计算即数据处理能力的增长速度比世界经济的增长速度快9倍。大数据的时代已经到来。表1-1 数据单位转化1.1.1 大数据基本概念“大数据”一词最早出现在20世纪90年代的美国,但直到2012年之后,大数据才逐渐获得了业界更多的关注和重视。其覆盖面之广涉及物理学、生物学、环境生态学、金融学以及军事领域、通信领域。当下对“大数据”的相关研究也很火热。

那么,何谓大数据?其实在最开始的时候,大数据并没有一个确切的概念,而是指需要处理的信息量很大,已经超过一半电脑在处理数据时所能使用的内存量,所以迫使工程师们必须改进处理数据的工具。在这种驱动下,谷歌的MapReduce和开源的Hadoop平台的出现使人们可以处理的数据量大大增加,从而提升了对大量数据的处理能力。在本书中,大数据的含义主要是指海量乃至巨量数据,并且数据规模大到无法通过目前普及的计算机系统在用户可容忍时间内获取、存储、处理的数据。

对大数据的认识和利用需要通过相关工具对数据进行提取、分析和利用。所以在后面的内容中相继会对常见数据处理(数据工程)、相关处理工具、处理算法、经典案例进行描述,本书将主要针对大数据基本理论和工程实战进行叙述以帮助初学者快速入门。1.1.2 大数据发展历程

2008年,电子商务快速发展,传统手段已无法满足其业务需求,大数据的理念和技术被雅虎、谷歌等大型互联网和电子商务公司尝试采用,并用来解决数据量大、数据种类多、数据流动速度快等问题。

2008 年末,“大数据”被美国部分知名计算机科学研究人员所认可,计算社区联盟(Computing Community Consortium)发表了白皮书《大数据计算:在商务、科学和社会领域创建革命性突破》。它打破人们的思维局限,使人们的思维不再局限于用以处理数据的机器,而且指出大数据重要的是其新用途和新见解,而不再是数据本身。

2010 年,随着 Web2.0 时代的到来,社交网络的飞速发展使人类进入自媒体时代,互联网数据进一步激增。智能移动终端的普及也使网络中的数据激增,大数据已如影随形,彻底融入人类社会的生产与生活之中。

2011年,麦肯锡咨询公司的研究报告《大数据:创新、竞争和生产力的下一个新领域》分析了数字、数据和文档爆发式增长的状态,阐述了处理这些数据的潜在价值,分析了大数据相关的经济活动和业务价值链。

2012年大数据发展空前繁荣。2012年3月,白宫网站发布了《大数据研究和发展倡议》,2012年4月,第一家大数据公司Splunk在纳斯达克上市,同年7月,联合国发布了一份大数据政务白皮书,阿里巴巴设立“首席数据官”管理职位。大数据已成为全球热门领域之一。

2014年4月,世界经济论坛围绕“大数据的回报与风险”主题发布了名为《全球信息技术》的报告。报告认为,在未来几年中,针对各种信息通信技术的政策会显得更加重要。同年5月,美国白宫发布了研究报告《大数据:抓住机遇、守护价值》,鼓励用数据推动社会进步,同时也呼吁相应的框架、结构与研究支撑相关进展。

2015 年,国务院印发《促进大数据发展行动纲要》,明确提出要推动大数据的发展和应用,建立大数据下的经济新体制,大数据正式进入中国国家发展战略。1.1.3 大数据的特征

大容量(Volume):从前面的例子中可以体会到,人类社会活动产生的数据量已经超越300 EB级,并且这个数据还在逐年递增。

多种类(Variety):多样化的数据往往都归类为结构化数据、半结构化数据和非结构化数据。与以往的结构化数据为主要数据的局面不同,现如今的数据多为非结构化数据,而这些包括网络日志、社交网络信息、地理位置信息等类型的数据都对数据处理提出了挑战。

速度快(Velocity):面对如此大的数据体量,须用高效快速的处理方式对数据进行处理,提取有用信息,提高价值密度。

真实性(Veracity):可靠的数据来源能够保障数据的真实性,而只有根据真实可靠的数据才能制定确实可靠的决策。

非结构性(Nonstructural):在获得数据之前无法提前预知其结构,目前绝大多数数据都是非结构化数据,而不是纯粹的关系数据,传统的系统对这些数据无法完成处理。大量出现的各种数据本身是非结构化的或者说弱结构化的,如图片、视频数据等都是非结构化的,而网页等是半结构化数据。

时效性(Timeliness):大数据的处理速度非常重要。数据规模越大,分析处理时间越长。如果设计一个处理固定大小数据量的数据系统,其处理速度可能会非常快,但这种方法并不适用于大数据的要求。在许多情况下,用户要求即时得到数据的分析结果。因此,还需要在实践、处理速度与规模之间折中考虑,寻求新的方法。

安全性(Security):由于大数据高度依赖数据存储和共享,必须寻求更好的方法来消除各种隐患与漏洞,才能有效地管控风险。数据的隐私保护是大数据分析和处理的一个重要问题,而隐私保护也是一个社会问题,一旦对个人数据的使用不当,尤其是涉及大批量的关联数据泄露,将会导致严重的后果。1.1.4 大数据的基本认识

量变导致质变,大数据的价值正是体现在这里。一方面对大数据的分析和利用可以带来经济利益;另一方面,大数据已经开始融入现代生活的方方面面,从商业到医疗、政府、教育等各领域的决策都离不开对大数据的依赖。

大数据的核心功能是预测,通过将数学算法运用到海量的数据上来预测事情发生的可能性。而这些预测系统的关键在于它们是建立于海量数据的基础之上。系统的数据越多,算法就能更好地改善自己的性能。

大数据的精髓在于分析信息时的三个转变,这些转变是初学者需要注意的概念。第一个转变就是,在大数据时代可以分析更多的数据,有时候甚至可以处理和某个特别现象相关的所有数据,而不再依赖于随机采样;第二个改变就是,研究数据量之多使大家不再热衷于追求精确度;第三个就是由于上述两个转变,大数据侧重对相关关系的发掘而不再注重于因果关系。1.2 人工智能1.2.1 认识人工智能

人工智能(AI,Artificial Intelligence)最初是在1956年的Dartmouth学会上提出的。自此以后,众多的研究者们在发展理论的过程中,人工智能的概念也就逐渐扩散开来。从计算机应用系统的角度出发,人工智能是研究如何制造智能机器或智能系统来模拟人类智能活动的能力,以延伸人类智能的科学。1.2.2 人工智能的现状与应用

随着AI技术的发展,现如今几乎各种技术的发展都涉及人工智能技术,人工智能技术已经渗透到许多领域,应用范围主要包括以下9个方面。(1)符号计算

计算机最主要的用途之一就是科学计算,科学计算可分为两类:一类是纯数值的计算,通常是对函数、公式的求值;另一类是符号计算,也称代数运算,这种运算是对符号进行运算,并且符号可以代表整数、有理数、实数和复数,也可以代表多项式、函数、集合等。(2)模式识别

模式识别就是通过计算机对数据样本进行特征提取,并用数学方法来研究模式的自动处理和判读。这里常说的模式是指文字、语音、生物特征、数字水印等环境与客体的结合体。(3)机器翻译

机器翻译是通过计算机把一种自然语言转换成另一种自然语言的过程,用以完成这一过程的软件系统叫作机器翻译系统。它是计算语言学(Computational Linguistics )的一个分支,涉及计算机、认知科学、语言学、信息论等学科,是人工智能的终极目标之一,具有重要的科学研究价值。(4)机器学习

机器学习是机器具有智能的重要标志,同时也是机器获取知识的根本途径。机器学习是一个难度较大的研究领域,它与认知科学、神经心理学、逻辑学等学科都有着密切的联系,并对人工智能的其他分支,如专家系统、自然语言理解、自动推理、智能机器人、计算机视觉、计算机听觉等方面,也会起到重要的推动作用。(5)逻辑推理与定理证明

逻辑推理是人工智能研究中最持久的领域之一,其中特别重要的是要找到一些方法,只把注意力集中在一个大型数据库中的有关事实上,留意可信的证明,并在出现新信息时适时修正这些证明。(6)自然语言处理

自然语言的处理是人工智能技术应用于实际领域的典型范例,经过多年艰苦努力,这一领域已获得了大量令人瞩目的成果。目前该领域的主要课题是:计算机系统如何以主题和对话情境为基础,注重大量的常识——世界知识和期望作用,生成和理解自然语言。(7)分布式人工智能

分布式人工智能在20世纪70年代后期出现,是人工智能研究的一个重要分支。分布式人工智能系统一般由多个智能体(Agent)组成,每一个Agent又是一个半自治系统,Agent之间以及Agent与环境之间进行并发活动,并通过交互来完成问题求解。(8)计算机视觉

计算机视觉主要研究的是使计算机具有通过二维图像认知三维环境信息的能力,这种能力不仅包括对三维环境中物体形状、位置、姿态、运动等几何信息的感知,而且还包括对这些信息的描述、存储、识别与理解。(9)专家系统

专家系统是目前人工智能中最活跃、最有成效的一个研究领域,它是一种具有特定领域内大量知识与经验的程序系统。人类专家因其丰富的知识,能够高效、快速地解决相应领域的众多问题,基于这一事实,给计算机程序学习并使其灵活运用这些知识,也就能解决人类专家所解决的问题,而且能帮助人类专家发现推理过程中出现的差错。1.2.3 当人工智能遇上大数据

大数据的发展离不开人工智能,而任何智能的发展,都是一个长期学习的过程,且这一学习的过程离不开数据的支持。而近年来人工智能之所以能取得突飞猛进的进展,正是因为这些年来大数据的持续发展。而各类感应器和数据采集技术的发展,人类开始获取以往难以想象的海量数据,同时,也开始在相关领域拥有更深入、详尽的数据。而这些数据,都是训练相关领域“智能”的基础。

与以前的众多数据分析技术相比,人工智能技术立足于神经网络,并在此基础上发展出多层神经网络,从而可以进行深度机器学习。与以往的传统算法相比,这一算法不像线性建模,需要假设数据之间的线性关系之类多余的假设前提,而是完全利用输入的数据自行模拟和构建相应的模型结构。这一算法特点决定了它是更为灵活的依据不同的输入来训练数据而拥有的自优化特性。

在计算机运算能力取得突破以前,这样的算法几乎没有实际应用的价值(因为运算量实在是太大了)。在十几年前,用神经网络算法计算一组并不海量的数据,辛苦等待几天都不一定会有结果。但如今,高速并行运算、海量数据、更优化的算法,打破了这一局面,并共同促成了人工智能发展的突破。1.3 大数据与人工智能的机遇与挑战1.3.1 大数据与人工智能面临的难题

人工智能已经发展了60多年,虽然在研究解释和模拟人类智能、智能行为及其规律这一总目标来说,已经取得了很大的进展。但从整体发展情况来看,人工智能发展过程曲折,而且还面临着不少难题,主要集中在以下几个方面。(1)机器翻译

机器翻译遇到的最主要的问题是歧义性问题。构成句子的单词和歧义性问题一直是自然语言理解(NLU,Natural Language Understanding)中的一大难关。不同的使用场景,句子的含义也可能天差地别。所以要想消除歧义,正确解释句子语意必须结合具体语境。但现有的翻译方式通常都是将句子甚至词组作为理解单元,翻译结果往往忽视具体语境。另外,即使对原文语意理解到位,如何将其正确地表示成另一种语言,也是一个难题。现有的NLU系统无法随着时间增长而提高解读能力,学习深度不够。(2)自动定理证明

自动定理证明需要机器拥有一套智能系统,不仅能够对现有条件进行合理演绎,并且能够做出正确判定。这一领域的代表性工作是1965年鲁宾孙提出的归结原理。归结原理虽然简单易行,但它所采用的方法是演绎,而这种形式上的演绎与人类自然演绎推理方法是截然不同的。基于归结原理的演绎推理要求把逻辑公式转化为子句集合,从而丧失了其固有的逻辑蕴含语义。(3)模式识别

虽然使用计算机进行模式识别的研究与开发已取得大量成果,有的已成为产品投入实际应用,但是它的理论和方法与人的感官识别机制是全然不同的。一方面,人的识别手段、形象思维能力是任何最先进的计算机识别系统望尘莫及的;另一方面,在现实世界中,生活并不是一项结构严密的任务,一般的动物都能轻而易举地对付,但机器不会,这并不是说它们永远不会,而是说目前不会。技术的发展总是超乎人们的想象,要准确地预测人工智能的未来是不可能的。但是,从目前的一些前瞻性研究可以看出,未来人工智能可能会向以下几个方面发展:模糊处理、并行化、神经网络和机器情感。1.3.2 大数据与人工智能的前景

人工智能作为一个整体的研究才刚刚开始,离其预定的目标还很遥远,但人工智能在某些方面将会有大的突破。(1)自动推理是人工智能最经典的研究分支,其基本理论是人工智能其他分支的共同基础。一直以来,自动推理都是人工智能研究的最热门内容之一,其中知识系统的动态演化特征及可行性推理的研究是最新的热点,很有可能取得大的突破。(2)机器学习的研究取得长足的发展。许多新的学习方法相继问世并获得了成功的应用,如增强学习(Reinforcement Learning)算法等。也应看到,现有的方法在处理在线学习方面尚不够有效,寻求一种新的方法以解决移动机器人、自主agent、智能信息存取等研究中的在线学习问题是研究人员共同关心的问题,相信不久会在这些方面取得突破。(3)自然语言处理是AI技术应用于实际领域的典型范例,经过AI研究人员的艰苦努力,这一领域已获得了大量令人瞩目的理论与应用成果。许多产品已经进入了众多领域。智能信息检索技术在Internet技术的影响下,近年来迅猛发展,已经成为AI的一个独立研究分支。由于信息获取与精化技术已成为当代计算机科学与技术研究中迫切需要研究的课题,将AI技术应用于这一领域的研究是人工智能走向应用的契机与突破口。从近年的人工智能发展来看,这方面的研究已取得了可喜的进展。

人工智能一直处于计算机技术的前沿,其研究的理论和发现在很大程度上将决定计算机技术的发展方向。如今,已经有很多人工智能的研究成果进入人们的日常生活。未来,人工智能技术的发展将会给人们的生活、工作和教育等带来更大的影响。第2章数据工程

随着数据规模的不断增大、数据采集手段的日益多样化,数据管理技术迅速发展,从传统的关系型数据到文本数据、半结构化数据和Web数据,从传统的关系数据库管理到面向大数据的分布式文件系统和数据中心,从经典的查询处理和优化到数据分析和知识发现,从数据集成到应用集成和服务计算,从集中式架构到分布式并行模型和数据密集型计算等。

数据工程是指面向不同计算平台和应用环境,使用信息系统设计、开发和评价的工程化技术和方法。以工程化作为基本出发点的数据处理、分析和应用方法与技术,是计算机科学与技术学科的重要内容、核心与趋势,具有广泛的应用和良好的前景。从工程化的角度理解数据科学,数据工程既包括数据处理技术,也包括数据分析技术和数据服务技术;既包括查询处理和优化、事务和工作流管理和数据库架构等基础内容,也包括数据挖掘与知识发现、时空数据、元数据和社会数据分析等经典问题,另外还包括概率数据、云计算和大数据管理等前沿课题。2.1 数据的多样性

在大数据时代,数据格式变得越来越多样,涵盖了文本、音频、图片、视频、模拟信号等不同的类型;数据来源也越来越多样,不仅产生于组织内部运作的各个环节,也来自于组织外部。2.1.1 数据格式的多样性

早期的数据,在企业数据的语境里主要是文本,如电子邮件、文档、健康/医疗记录。随着互联网和物联网的发展,又扩展到网页、社交媒体、感知数据,涵盖音频、图片、视频、模拟信号等,真正诠释了数据格式的多样性。下面主要介绍几种常见的数据格式。(1)文本数据

文本数据是最普通也是最常见的数据类型。例如,每天用社交软件产生的大量信息都是采用文本的形式进行记录和保存的。现在计算机处理得最完善和最成熟的就是文本数据。(2)音频数据

音频数据比较具有代表性的是mp3格式的数据。许多用户在线听音乐读取的就是网络上的音频数据,音频数据相对于视频数据而言,占据的存储空间较小,但是没有视频画面的内容,只有声音的数据。用户的电话通话录音、微信的语音信息等都是音频数据。(3)图片数据

图片数据比较常见,百度首页专门有图片搜索栏目,主要内容包括:摄影写真、高清动漫、明星写真、高清壁纸、风景图片、卡通头像等。图片数据主要用于记录静态信息,给人以直观的感觉。随着搜索技术的发展,图片搜索取得了非常大的进展,目前可以根据图片搜索类似的图片数据。(4)视频数据

日常生活中的视频数据非常普遍,如微信的视频聊天数据、QQ的视频聊天数据、各种媒体网站(如腾讯视频、爱奇艺、土豆、优酷等)上的电影数据、电视剧数据等都是视频数据。这些数据的特点是:数据占据存储空间大、在网络的传输中占据大量带宽资源。目前对于描述视频文本的数据处理技术非常成熟,但是对于如何检测某个视频里面是否出现指定的信息或图像等技术还在试验阶段。一方面,由于视频文件比较大,即使对其进行检测也需要对其里面的每一帧图像进行图像处理,识别图像中的物体,由于视频由许多帧构成,因此数据处理的工作量巨大。另一方面,由于图像处理的精度有待于进一步提高,对视频处理有时需要识别运动的物体,这种需求对视频的处理技术带来了更为严峻的挑战。2.1.2 数据来源的多样性

数据主要可以划分为以下4个来源。(1)来源于使用者自身产生的数据/信息。人们通过电子邮件、短信、微博等产生的文本信息、音频和视频。这些数据结构松散、数量巨大,亟待从中挖掘有意义的结论和有用的信息。(2)来源于机器自身配备装置的测量报告。现在,越来越多的生产商在机器中配置了监视器和传感器,能够连续提供机器整体运行情况。处理和挖掘这部分数据中有效的信息,有利于生产商从中赚取利润。(3)计算机产生的数据可能包含关于因特网和其他使用者行动和行为的有效信息,从而提供对他们的愿望和需求潜在的有用认识。(4)存在较强关联性的其他领域的数据。

接下来将介绍在交通领域中数据来源的例子。北京市交通智能化分析平台数据源来自路网摄像头/传感器、地面公交、轨道交通、出租车以及省际客运、旅游、化危运输、停车、租车等运输行业,还有问卷调查和GIS数据。从数据体量和速度上也达到了大数据的规模:4万辆浮动车每天产生20 M条记录;交通卡刷卡记录每天19 M条;手机定位数据每天18 M条;出租车运营数据每天1 M条;高速ETC数据每天500 k条;针对8万户家庭的定期调查等。发掘这些形态各异、快慢不一的数据流之间的相关性,是大数据做前人之未做、前人所不能的机会。更甚者,交通状况与其他领域的数据都存在较强的关联性:有研究发现,可以从供水系统数据中发现晨洗的高峰时间,加上一个偏移量(通常是 40~45 min)就是交通早高峰时间;同样可以从电网数据中统计出傍晚办公楼集中关灯的时间,加上偏移量来估计出晚上的堵车时点。国外的研究还发现了交通事故率与睡眠质量的关联,不一而足。2.1.3 数据用途的多样性(1)应用于医疗

大数据应用于医疗方面,主要是通过收集数据对大数据加以分析,从而对疾病起到预防和治疗作用。患者戴上大数据设备后,该设备可以收集到有意义的数据,通过大数据分析可以监测病人的生理状况,从而帮助医生对病人进行及时、准确、有效的治疗;据新华网报道,大数据分析可以在几分钟内解码整个DNA,从而找到新的治疗方法,同时还能使人们更好地理解和预测疾病模式。(2)应用于金融行业

大数据在金融行业的主要应用是金融交易,很多股权交易都是利用大数据算法进行的,这些算法可以迅速决定是否将商品卖出,使交易环节变得更加简洁、准确。在这个大数据时代,把握市场机遇、迅速实现大数据商业模式创新尤为重要。(3)应用于地理信息

地理信息系统需要对相关空间信息进行及时处理,还有大量存储数据和工作任务,将大数据技术合理应用于地理信息系统不仅能及时处理地理信息,还能提高处理结果的准确度。(4)应用于消费

要想立足于未来市场,构建大数据库并充分利用大数据技术尤为重要。淘宝、京东等企业会通过大数据技术自动记录用户的交易数据,并对其信用进行分析记录,日积月累后形成一个庞大的数据库,为后续的金融业务布局提供数据进行征信及风控。(5)应用于制造业

大数据影响生产力,即通过大数据分析使机器和设备在应用上更加智能化和自主化,使生产过程更加简洁、准确、安全,以提高生产制造的能力。除此之外,大数据技术能够帮助企业了解顾客喜好,从而投其所好,生产市场需求的产品。2.2 数据工程的一般流程

数据工程一般分为:数据获取、数据清洗、数据存储、数据建模、数据处理、数据分析、数据可视化等若干个流程。(1) 数据获取

数据获取是指将不同数据源的数据自动收集到一个装置中。被采集数据是已被转换为电信号的各种物理量,可以是模拟量,也可以是数字量。采集的数据大多是瞬时值,也可以是某段时间内的一个均值。一般的采样方式是重复采集,即每隔一个采样周期对同一个点的数据重复采集。准确的数据量测量是数据获取的基础。(2)数据存储

数据存储是指借助某种存储工具或媒介(如移动硬盘、光盘、磁带等),对采集到的数据进行持久化的保存,以便将来能够对数据进行检索或备份。数据存储一般存放在文件或者数据库中。(3)数据清洗

数据清洗是指把非格式化或“污染”的数据,经过特定的处理,规范化或格式化为标准格式的数据,以供用户分析和决策使用。数据清洗的目的在于使数据达到准确性、完整性、一致性、适时性和有效性等要求,以支持后续对数据的处理。(4)数据建模

数据建模是指定义支持商业流程所需要的数据要求的过程。数据建模需要专业建模师和系统潜在用户的紧密参与。数据建模的最终目的是提升用户使用系统的效率。不同的模型可以解决不同的问题,通常为了实现某种目的,可以建立多种数据模型。

数据模型的建立过程如图2-1所示。图2-1 数据建模流程(5)数据处理

数据处理是对数据的采集、存储、检索、加工、变换和传输等操作。数据处理的目的在于从海量的杂乱无章的数据中抽取并推导出某些特定的对人们生产有价值、有意义的数据。(6)数据分析

数据分析是指从海量的数据中,利用数据挖掘的方法获取有用的、有价值的数据信息。数据分析可以通过软件辅助完成,借助图表等直观的表达方式为领导和决策者提供帮助。(7)数据可视化

数据可视化是指把数据通过直观的可视化的方式展示给用户。通常采用目前开源的可视化工具,也可以自己编写一些可视化软件。数据可视化的作用是更加直观地显示给用户有用的信息。2.3 数据的获取

数据获取是指利用一种装置,将来自于各种数据源的数据自动收集到一个装置中。被采集数据是已被转换为电信号的各种物理量,如温度、压力、速度、测量值等,可以是模拟量,也可以是数字量。采集一般是采样方式,即每隔一段时间(采样周期)对同一个点的数据重复采集。采集的数据大多是瞬时值,也可以是某段时间内的一个特征值。

数据采集处于大数据生命周期中第一个环节,它通过 RFID(Radio Frequency Identification)射频数据、传感器数据、社交网络数据、移动互联网数据等方式获得各种类型的结构化、半结构化的海量数据。由于可能有成千上万的用户同时进行并发访问和操作,因此,必须采用专门针对大数据的采集方法。下面将介绍数据来源、常用的数据采集方式及大数据采集平台。2.3.1 数据来源

根据麦肯锡全球研究所的分析,利用大数据在各行各业能产生显著的财务价值。美国健康护理利用大数据每年产出3 000亿美元,年劳动生产率提高0.7%;欧洲公共管理每年价值2 500亿欧元,年劳动生产率提高0.5%;全球个人定位数据服务提供商收益1 000多亿美元,为终端用户提供高达7 000亿美元的价值;美国零售业净收益可增长6%,年劳动生产率提高0.5%~1%;制造业可节省50%的产品开发和装配成本,营运资本下降7%。

当今大数据的来源除了专业研究机构产生大量的数据外,与企业经营相关的大数据可以划分为4个来源。(1)越来越多的机器配备了连续测量和报告运行情况的装置。几年前,跟踪遥测发动机运行仅限于价值数百万美元的航天飞机。现在,汽车生产商在车辆中配置了监视器,连续提供车辆机械系统整体运行情况。一旦数据可得,公司将千方百计从中获利。这些机器传感数据属于大数据的范围。(2)计算机产生的数据可能包含关于因特网和其他使用者行动和行为的有趣信息,从而提供了对他们的愿望和需求潜在的有用认识。(3)使用者自身产生的数据/信息。人们通过电子邮件、短信、微博等产生的文本信息。(4)至今最大的数据是音频、视频和符号数据。这些数据结构松散、数量巨大,很难从中挖掘有意义的结论和有用的信息。2.3.2 数据采集方法

大家可以使用很多方法来收集数据,如制作网络爬虫从网站上抽取数据、从RSS反馈或者 API 中得到信息、设备发送过来的实测数据(风俗、血糖等)。提取数据的方法非常多,为了节省时间与精力,可以使用公开可用的数据源。常用的几种数据采集方法如下。(1)DPI采集方式

这种方式采集的数据大部分是“裸格式”的数据,即数据未经过任何处理,可能包括HTTP(Hyper Text Transport Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Message Transfer Protocol)等数据,数据来源于QQ、微信和其他应用APP的数据,或来自爱奇艺、腾讯视频、优酷、土豆等视频提供商的数据。DPI(Dots Per Inch)数据采集软件主要部署在骨干路由器上,用于采集底层的网络大数据。目前有一些对DPI采集到的数据进行分析的开源工具,如nDPI等。(2)系统日志采集方法

很多企业、公司都有自己的业务管理平台,每天会产生大量的日志数据。日志采集系统的主要功能就是收集业务日志数据为决策者提供离线和在线分析使用。这种日志采集软件必须具备高可用性、高可靠性和高可扩展性等基本特性。并且能满足每秒数百MB的日志数据采集和传输需求,如Hadoop的Chukwa、Cloudera的Flume、Facebook的Scribe等。(3)网络数据采集方法

这种方法主要针对非结构化数据的采集,网络数据采集是指通过网络爬虫或网站公开API(Application Program Interface)等方式从网站上获取数据信息。该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。

用该方法进行数据采集和处理的基本步骤如图2-2所示:①将需要抓取数据网站的URL (Uniform Resource Locator)信息写入URL队列;②爬虫从URL队列中获取需要抓取数据网站的Site URL信息;③爬虫从Internet抓取对应网页内容,并抽取其特定属性的内容值;④爬虫将从网页中抽取的数据写入数据库;⑤DP(Data Process)读取Spider Dat,并进行处理;⑥DP将处理后的数据写入数据库。图2-2 Web数据采集和处理(4)数据库采集

一些企业会使用传统的关系型数据库 MySQL 和 Oracle 等存储数据。除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。这种方法通常在采集端部署大量数据库,并对如何在这些数据库之间进行负载均衡和分片进行深入的思考和设计。(5)其他数据采集方法

对于企业生产经营数据或学科研究数据等保密性要求比较高的数据,可以通过与企业或研究机构合作,使用特定的系统接口等相关方式采集数据。2.3.3 大数据采集平台(1)Apache Flume

Flume是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。Flume使用JRuby来构建,所以依赖Java运行环境。(2)Fluentd

Fluentd是另一个开源的数据收集框架。Fluentd使用C/Ruby开发,使用JSON文件来统一日志数据。它的可插拔架构支持各种不同种类和格式的数据源和数据输出。同时也提供了高可靠的扩展性。(3)Logstash

Logstas是著名的开源数据栈ELK(ElasticSearch,Logstash,Kibana) 中的那个L。Logstash用JRuby开发,运行时依赖JVM(Java Virtual Machine)。(4)Splunk Forwarder

Splunk是一个分布式的机器数据平台,主要有三个角色:①Search Head负责数据的搜索和处理,提供搜索时的信息抽取;②Indexer负责数据的存储和索引;③Forwarder负责数据的收集、清洗、变形,并发送给Indexer。2.4 数据的存储与数据仓库2.4.1 数据存储

数据存储,即将数据以某种格式记录在计算机内部或外部存储介质上。总体来讲,数据存储方式有三种:文件、数据库、网络。其中文件和数据库可能用得稍多一些,文件用起来较为方便,程序可以自己定义格式;数据库用起来稍烦琐一些,但也有它的优点,如在海量数据时性能优越、有查询功能、可以加密、可以加锁、可以跨应用、跨平台等;网络则用于比较重要的事情,如科研、勘探、航空等实时采集到的数据需要马上通过网络传输到数据处理中心进行存储并处理。

对于企业存储设备而言,根据存储实现方式可将数据存储划分为三种类型:直接附加存储(DAS,Direct Attached Storage)、网络附加存储(NAS,Network Attached Storage)、存储区域网络(SAN,Storage Area Network)。DAS是直接连接于主机服务器的一种存储方式,每一台主机服务器有独立的存储设备,每台主机服务器的存储设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。SAN是一种用高速(光纤)网络连接专业主机服务器的一种存储方式,此系统会位于主机群的后端,它使用高速I/O 联结方式,如 SCSI(Small Computer System Interface)、 ESCON (Enterprise Systems Connection)及 Fibre- Channels。NAS是一套网络存储设备,通常直接连在网络上并提供资料存取服务,一套 NAS 存储设备就如同一个提供数据文件服务的系统,特点是性价比高。这三种存储方式共存、互相补充,能很好满足企业信息化应用。

企业的数据处理大致分为两类:一类是操作型处理,也称为联机事务处理,主要针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改;另一类是分析型处理,一般针对某些主题的历史数据进行分析,支持管理决策。由此关系型数据库也衍生出两种类型。随着数据库使用范围的不断扩大,它被逐步划分为两大基本类型:操作型数据库和分析型数据库。操作型数据库主要用于业务支撑,一个公司往往会使用并维护若干个数据库,这些数据库保存着公司的日常操作数据。分析型数据库主要用于历史数据分析,这类数据库作为公司的单独数据存储,负责利用历史数据对公司各主题域进行统计分析;面向分析的存储系统衍化出了数据仓库的概念。2.4.2 数据仓库

数据仓库强调利用某些特殊资料存储方式,让所包含的资料,特别有利于分析处理,以产生有价值的资讯并依此做决策。利用数据仓库方式所存放的资料,具有一旦存入,便不随时间而变动的特性,同时存入的资料必定包含时间属性,通常一个数据仓库都会含有大量的历史性资料,并利用特定分析方式,从其中发掘出特定资讯。数据仓库并不需要存储所有的原始数据,但数据仓库需要存储细节数据,并且导入的数据必须经过整理和转换使其面向主题。

数据仓库具有以下几个特点。(1)面向主题

面向主题特性是数据仓库和操作型数据库的根本区别。操作型数据库是为了支撑各种业务而建立,而分析型数据库则是为了对从各种繁杂业务中抽象出来的分析主题(如用户、成本、商品等)进行分析而建立。(2)集成性

集成性是指数据仓库会将不同源数据库中的数据汇总到一起。(3)企业范围

数据仓库内的数据是面向公司全局的。例如某个主题域为成本,则全公司和有的成本信息都会被汇集进来。(4)历史性

较之操作型数据库,数据仓库的时间跨度通常比较长。前者通常能够保存几个月,后者则能保存几年甚至几十年。(5)时变性

时变性是指数据仓库包含来自其时间范围不同时间段的数据快照。有了这些数据快照以后,用户便可将其汇总,生成各历史阶段的数据分析报告。2.5 数据的预处理技术2.5.1 数据预处理的目的

狭义上来说,大数据即大量的数据,这种理解下的大数据本身并没有价值,它只是一堆结构或者非结构的数据集合。而有价值的是隐藏在大数据背后看不见的信息集,这就是互联网中的数据价值,也是广义上的大数据。人们拿到这些信息后可以利用它们进行各种判断与决策。因此,需要用各种方法对大数据进行分析与挖掘,获取其中蕴含的智能的、深入的、有价值的信息。

但是,在拿到一个数据集之后如果直接用各种算法进行分析挖掘,往往不能准确高效地得到结果。现实世界中的数据大体上都是不完整、不一致、含有噪声的脏数据,无法直接进行数据挖掘,或挖掘结果差强人意。不一致是指数据内涵出现不一致的情况,不完整是指数据中缺少研究者感兴趣的属性,噪声是指数据中存在的错误或异常(偏离期望值)的数据。

没有高质量的数据,就没有高质量的挖掘结果。为了提高数据挖掘的质量产生了数据的预处理技术。数据预处理主要包括以下方法。(1)数据清理:通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。主要达到如下目标:格式标准化、异常数据清除、错误纠正、重复数据的清除。(2)数据集成:将多个数据源中的数据结合起来并统一存储,建立数据仓库的过程实际上就是数据集成。(3)数据变换:通过平滑、聚集、规范化、最小最大规范化等方法,把原始数据转换成为适合数据挖掘的形式。(4)数据归约:维归(删除不相关的属性(维))、数据压缩(PCA、LDA、SVD、小波变换)、数值归约(回归和对数线形模型、线形回归、对数线形模型、直方图)。

这些处理技术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,并且显著降低实际所需的时间。2.5.2 数据清理

现实世界的数据一般是不完整的、有噪声的和不一致的。数据清理试图填充缺失的值,光滑噪声和识别离群点,并纠正数据中的不一致。(1)处理缺失值的方法

① 忽略元组:若挖掘任务涉及分类,并且缺少类标号的时候可用此方法。元组有多个属性缺少值时更有效。当每个属性缺失值的百分比变化很大时,该方法性能会变差。

② 人工填写缺失值:缺失量大时不可行。

③ 使用一个全局常量填充缺失值:将缺失的属性值用同一个常量替换,简单但不可靠。

④ 使用属性的均值填充缺失值:正常数据分布可以使用均值,而倾斜数据分布应该使用中位数。

⑤ 使用与给定元组属同一类的所有样本的属性均值:如果给定类的数据分布是倾斜的,中位数是更好的选择。

⑥ 使用最有可能的值填充缺失值:可以用回归,使用贝叶斯形式化的基于推理的工具或决策树归纳确定,这是最流行的数据处理方法。与其他方法相比,它使用已有数据的大部分信息来推测缺失值。(2)数据光滑技术

① 分箱:分箱方法是一种简单常用的预处理方法,通过考察数据的“近邻”(即周围的值)来确定最终值。所谓“分箱”,实际上就是按照属性值划分子区间,如果一个属性值处于某个子区间范围内,就称把该属性值放进这个子区间对应的箱子。把待处理的数据都放进箱子后,采用某种方法分别对各个箱子中的数据进行处理。在使用分箱技术时,要注意如何分箱以及如何对每个箱子中的数据进行平滑处理。

分箱的方法主要如下。

a. 等深分箱法:将数据集按记录行数分箱,每箱具有相同的记录数,每箱记录数称为箱子的深度。即箱的深度表示不同的箱里有相同个数的数据。这是最简单的一种分箱方法。

b. 等宽分箱法:使数据集在整个属性值的区间上平均分布,箱的宽度表示每个箱值的取值区间是个常量。

c. 用户自定义区间:用户可以根据需要自定义区间,当用户明确希望观察某些区间范围内的数据分布时,使用这种方法可以方便地帮助用户达到目的。

② 回归:可以用一个函数(如回归函数)拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”线,即通过建立数学模型来预测下一个数值。多元线性回归是线性回归的扩展,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。

③ 聚类:聚类将类似的值组织成群或“簇”。直观来讲,落在簇集合之外的值被视为离群点。通过聚类检测那些落在簇之外的值(离群点)被视为噪声,找出后清除。2.5.3 数据集成

数据集成合并多个数据源中的数据,存放在一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。数据集成有三个主要问题。(1)模式匹配:现实世界的等价实体来自多个信息源的,这样的实体如何才能匹配?这涉及实体识别问题。每个属性的元数据包括名字、含义、数据类型和属性的允许取值范围,以及处理空白、零或NULL值的空值规则。通常,数据库或者数据仓库中的元数据可以帮助避免模式集成的错误。元数据还可以用来帮助变换数据。(2)数据冗余:如果一个属性能由另一个或另一组属性“导出”,那么这个属性可能就是冗余的。属性命名的不一致也可能导致数据集中的冗余。有些冗余可以被相关分析检测到。例如,给定两个属性,根据可用的数据,这种分析可以度量一个属性能在多大程度上蕴含另一个。对于标称数据,使用卡方检验。对于数值属性,使用相关系数和协方差,它们都评估一个属性的值如何随另一个变化。(3)数据值冲突的检测与处理:对于现实世界的同一实体,来自不同数据源的属性值可能不同。这可能是因为表示、尺度或编码等方面的差异造成的不同。例如,长度在一个系统中用千米衡量,而在另一个系统中用的是英里。2.5.4 数据变换

将数据转换或统一成适合于挖掘的形式,涉及如下内容。(1)光滑:去掉数据的噪声,包括分箱、回归和聚类。(2)聚集:对数据进行汇总或聚集。这一步通常用来为多粒度数据分析构造数据立方体。(3)数据泛化:使用概念分层,用高层概念替换底层或“原始”数据。(4)规范化:又称为归一化,feature scaling特征缩放。将属性数据按比例缩放,使之落入一个小的特定区间。规范化方法有以下三种。

① 最小-最大规范化

v′=[(v−min)/(max−min)]×(new_max−new_min)+new_min,v是真实值,v′是规范化之后的值。

② z-score规范化(零均值规范化)

根据属性值的平均值和标准差进行规范化,v′=(v−属性A的均值)/属性A的标准差。

③ 小数定标规范化

v′=v/10的j次方,j是使Max(|v′|)<1的最小整数。(5)属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。2.5.5 数据规约

原始数据集可能非常大,面对海量数据进行复杂的数据分析和挖掘将需要很长的时间。数据归约技术可以用来得到数据集的归约表示,它小很多,但仍接近保持原数据的完整性。数据规约策略包括维归约和数值规约。

数据规约方法主要包括以下几种。(1)维规约:减少所考虑的随机变量或属性的个数。维规约方法包括小波变换和主成分分析,它们把原数据变换或投影到较小的空间。属性子集选择是一种维归约方法,其中,不相关、弱相关或冗余的属性或维被检测和删除。(2)数值规约:用替代的、较小的数据形式替换原数据。这些技术可以是参数的或非参数的。对于参数方法而言,使用模型估计数据,使之一般只需要存放模型参数,而不是实际数据(离群点可能也要存放)。回归和对数线性模型就是例子。存放数据规约表示的非参数方法包括直方图、聚类、抽样和数据立方体聚集。(3)数据压缩:通过变换以便得到原数据的规约或“压缩”表示。如果原数据能够从压缩后的数据重构而不损失信息,则称该数据规约为无损的。如果只能近似重构原数据,则称该数据规约为有损的。2.6 模型的构建与评估2.6.1 模型的构建

机器学习模型建立过程其实是一个参数学习与调优的过程。对模型进行训练,便是模型参数的学习更新过程。模型除了这些常规参数之外,还存在超参数(Hyper-Parameter)。它们之间有何区别呢?简而言之,模型参数是通过模型训练中的学习算法而进行调整的,而模型超参数不是通过学习算法而来的,但是同样也需要进行调优。例如,在对垃圾邮件检测进行建模时,假设使用logistic回归。那么该任务就是在特征空间中寻找能够将垃圾邮件与正常邮件分开的logistic函数位置,于是模型训练的学习算法便是得到各个特征的权值,从而决定函数的位置。但是该学习算法不会告诉我们对于该任务需要使用多少个特征来对一封邮件进行表征,特征的数目这一参数便是该模型的超参数。

超参数的调优是一个相当复杂与烦琐的任务。在模型原型设计阶段,需要尝试不同的模型、不同的超参数以及不同的特征集,需要寻找一个最优的超参数,因此需要使用相关的搜索算法去寻找,如格搜索(Grid Search)、随机搜索(Random Search)以及启发式搜索(Smart Search)等。这些搜索算法是从超参数空间中寻找一个最优的值,后面会进行详细介绍。

当模型使用离线数据训练好并满足要求后,就需要将模型使用新的在线数据进行上线测试,这就是所谓的在线测试。在线测试不同于离线测试,有不同的测试方法以及评价指标。2.6.2 评价指标

评价指标是机器学习任务中非常重要的一环。不同的机器学习任务有着不同的评价指标,同时同一种机器学习任务也有着不同的评价指标,每个指标的着重点不一样,如分类(Classification)、回归(Regression)、排序(Ranking)、聚类(Clustering)、热门主题模型(Topic ModeLing)、推荐(Recommendation)等。并且很多指标可以对多种不同的机器学习模型进行评价,如精确率-召回率(Precision-Recall),可以用在分类、推荐、排序等当中。像分类、回归、排序都是监督式机器学习,下面对其中几个评价指标进行简单介绍。(1)分类评价指标

分类是指对给定的数据记录预测该记录所属的类别,并且类别空间已知,它包括二分类与多分类。二分类便是指只有两种类别,如垃圾邮件分类中便是二分类问题,因为类别空间只有垃圾邮件和非垃圾邮件这两种,可以称为“负”(Negative)与“正”(Positive)两种类别,一般在实际计算中,将其映射到“0”-“1”class中;而多分类则指类别数超过两种。(2)回归评价指标

与分类不同的是,回归是对连续的实数值进行预测,即输出值是连续的实数值,而分类中是离散值。例如,提供历史股票价格、公司与市场的一些信息,需要去预测将来一段时间内股票的价格走势,那么这个任务便是回归任务。对于回归模型的评价指标主要有以下几种。

① RMSE

回归模型中最常用的评价模型便是平方根误差(RMSE,Root Mean Square Error),又被称为RMSD(Root Mean Square Deviation),其定义如下。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载