前言

为什么要写这本书

近年来,以机器学习、深度学习为代表的人工智能技术已经逐步应用到医学、金融、交通等领域,由此掀起了一场大规模的科技与产业革新。人工智能是一门基于数据的科学技术,高质量的数据是推动其发展与应用的重要驱动力。然而,由于现实生活中机器或人为等干扰,数据缺失经常发生甚至不可避免。数据缺失可理解为不完整数据集中的“漏洞”,若不对其进行合理“弥补”,则无法正常开展数据挖掘等数据分析任务。由此可见,在数据质量难以保障而人工智能不断深化的今天,缺失数据已成为从业或科研人员经常面临的问题。

结合缺失数据处理这一现实需求,以及笔者多年的研究和工程经验,本书将全方位、多角度、深层次地呈现目前主流的数据缺失值填补方法,以对缺失值填补领域的研究成果和个人见解进行系统的论述。

缺失值填补是缺失数据处理的有效手段,其核心思想是为每个缺失值计算合理的替换值,以构造完整数据集。此类方法既可以保持原始数据集的规模,又能够保留不完整样本中现有数据所携带的信息,逐渐受到众多研究学者和开发人员的广泛关注。缺失值填补方法众多,应用范围基本覆盖基于数据的科学研究与工业应用领域。诸如均值填补、热平台填补等传统方法主要基于统计学理论实现,随着人工智能的发展,以机器学习为代表的人工智能技术在缺失值填补领域逐渐盛行。一方面,缺失值填补能够改善数据质量,进而改进机器学习的应用成效;另一方面,机器学习能够反哺缺失值填补方法的设计与创新。基于机器学习的缺失值填补理论与方法研究逐渐成为主要的发展趋势。

尽管填补方法众多,但无论是哪种方法均不具备普适性,故需从全局视角建立对缺失值填补的全面认知,以在实际应用中结合具体场景和数据集特性选取适宜的填补方法。目前,缺失值填补领域的研究成果以学术论文为主,少有系统性的图书。由于内容分散且繁杂,研究者需要耗费大量时间查阅论文,且难以形成系统且全面的认知。为了方便读者从全局视角掌握不同的填补方法,深入理解其意义及相互之间的区别,本书对当下缺失值填补领域的研究成果与应用情况进行系统概括和提炼,并重点突出基于神经网络和TS模型等机器学习理论的缺失值填补方法,为读者在科研或工作中遇到的缺失值问题提供全面而有效的解决思路。

总体而言,本书涉及的理论和方法能解决数据处理所面临的缺失值问题,从而有效提高数据质量,为后续人工智能技术的应用与发展建立坚实的基础。

读者对象

本书专注于采用机器学习方法解决数据缺失问题,目标明确、特点鲜明,内容循序渐进、由浅入深,尤其强调论述的系统性和完备性。本书适用人群包括:

●人工智能,尤其是机器学习相关领域的研究者;

●有相关项目开发需求的软件工程师;

●高校信息学科或相关交叉学科的教师;

●高校计算机、软件、电子、自动化相关专业的三、四年级本科生及研究生;

●其他了解一定人工智能基础的学习者和对此感兴趣的爱好者。

阅读本书,应具备如下基础:

●了解人工智能的基础知识和概念;

●具有人工智能基本工具的使用经验,如Python、TensorFlow。

本书特色

本书专注于采用机器学习方法进行缺失数据的填补,相比于传统的基于统计学的方法,基于机器学习方法的模型更简单,不需要读者具有很强的数学功底,并且填补效果优于传统方法。以机器学习为代表的人工智能方法引领了目前技术发展的潮流,为社会生活的方方面面带来了彻底的变化。

目前图书市场中,关于缺失值填补的图书少之又少。现存的几类图书,要么基于统计学的方法,要么直接调用函数库讲解应用,对于基于机器学习方法的缺失值填补方法的论述基本是空白状态,这与大量数据集需要完成缺失值填补这一现实需求存在巨大的鸿沟。

本书的主要特点如下。

●新颖性。本书主要采用神经网络和TS模型方法来解决数据缺失问题,与传统基于统计学的填补方法截然不同,且填补精度更高,填补难度更低。目前,国内图书市场尚无一本专著与本书类似,因而本书具有新颖性。

●先进性。本书采用的数据集来自UCI等国际公认的著名大学数据集,提出了一系列基于神经网络和TS模型的填补方法,并与近年来国际上较为流行的其他方法充分对比,实验结果证明本书所提出的方法具有技术先进性。

●工程性。本书附录公开了核心方法代码,读者可直接将本书方法应用于自己的工程项目当中,具有工程价值。

●易用性。读者只要了解人工智能的基本概念,能够基于Python语言和TensorFlow完成基本操作,即可读懂本书,并且能够演示和复现各章节的填补方法,具有很好的易用性。

●系统性。本书较为全面地介绍了缺失值填补的各方面内容,包括传统方法概述、国内外研究现状评论,对作者设计的各种方法也采用循序渐进的方式,按照方法之间的逻辑关系逐步介绍,力争为读者呈现基于机器学习的缺失值填补方法的全貌,给读者提供一站式的学习体验,具有良好的系统性。

如何阅读本书

本书系统地介绍了基于机器学习的缺失值填补理论及方法,共分为8章。

第1章介绍了缺失值填补的背景、意义、研究现状及应用。

第2章首先对数据缺失机制、缺失数据的处理进行概述,由此突出缺失值填补方法的优越性及必要性;接着从基本概念、方法分类、性能度量3个角度介绍缺失值填补概况。

第3章详细阐述目前基于统计学、机器学习的缺失值填补理论与方法。首先从样本间相似度、属性间关联性两个角度对部分填补方法展开介绍;接着阐述基于参数估计的期望最大化填补方法,以及针对缺失数据不确定性的缺失值填补方法。

第4章对目前神经网络在缺失值填补领域的研究成果进行归纳总结,包括基于多层感知机、自相关神经网络、循环神经网络等的填补模型。

第5章从网络代价函数、填补方法两个角度阐述神经网络填补方法的设计及应用,重点介绍缺失值变量视角下的网络动态填补方案,并详细阐述缺失值变量思路的优点。

第6章介绍基于TS模型的缺失值填补方法,突出TS模型可解释性强的优点,详细介绍面向不完整数据的TS建模过程,并通过特征选择算法解决TS建模中的特征冗余问题。

第7章从前提参数优化和结论参数优化两个角度改进TS模型。其中,针对类不均衡问题提供了合理的TS模型优化方案,并介绍了缺失值与TS模型参数的交替学习方案。

第8章基于前文介绍的缺失值填补方法,针对我国贫困家庭特征分析中的数据缺失问题提供解决方案,为缺失值填补的研究工作赋予现实意义,体现其应用价值。

第4~8章提供的各缺失值填补方法的相关核心代码下载地址为https://github.com/ldz15219/-/releases/tag/1.0

总体而言,第1~3章阐述了缺失值填补的理论基础,第4~5章详细阐明了基于神经网络的缺失值填补方法,第6~7章详细阐明了基于TS模型的缺失值填补方法,第8章介绍缺失值填补方法的实际应用。读者可根据自身需求或者已有知识储备有选择地阅读,但如果你是一名初学者,建议从第1章开始按顺序学习。

勘误和支持

由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎发送邮件至laixiaochen@dlut.edu.cn,期待能够得到大家的真挚反馈。

致谢

感谢刘德正在本书的内容撰写、实验设计、文字及格式校对等方面付出的辛苦努力。没有你的帮助,本书不可能完成。也感谢刘鑫、陆艺丹、宋橘超、朱金冲、阎文亮等多位朋友对本书的大力支持。

感谢机械工业出版社华章公司的编辑杨福川、张锡鹏、李良等,在创作过程中始终支持我的工作,你们的鼓励和帮助引导我们顺利完成全部书稿。

感谢国家重点研发计划项目(2018YFB1700200)和国家自然科学基金项目(U1608256)的支持。

感谢我的家人,是你们帮我承担了家庭负担,并时时督促和鼓励我,使我得以完成书稿的撰写。

谨以此书献给我的孩子,希望你能健康开心地成长!

赖晓晨

2020年4月