3、法以及发现的知识两个方面,这是基于数据挖掘概念的首次国际学术会议。随后在1991、1993和1994年都举行了KDD专题讨论会随着参与科研和开发人员的不断增加,国际KDD组委会于1995年把专题讨论会发展成为国际年会。在加拿大的蒙特利尔市召开了第一届KDD国际学术会议上,“数据挖掘”(datamining)概念第一次由UsamaM.Fayyad提出。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、有效的、新颖的、潜在有用的并且最终可理解的模式的非平凡过程。以后每年召开一次,第25届ACMSIGKDD于2019年8月4日至8日在美国阿拉斯加安克雷奇市举
4、行。2.其他国际性数据挖掘年会ICDM(IEEEInternationalConferenceonDataMining)由IEEE(InstituteofElectricalandElectronicsEngineers)组织主办的国际数据挖掘会议,会议涉及数据挖掘的所有内容,包括算法、软件、系统及应用,从2001年开始,每年召开一次,第19届会议于2019年11月8日至11日在中国北京举行。SDM(SIAMInternationalConferenceonDataMining)是SIAM(SocietyforIndustrialandApplie
5、dMathematics)组织召开的数据挖掘讨论会,2001年4月召开第一届讨论会,专注于科学数据的数据挖掘,以后每年召开一次,第19届会议于2019年5月2日至4日在加拿大艾伯塔省的卡尔加里市举行。PAKDD(Pacific-AsiaConferenceonKnowledgeDiscoveryandDataMining)是亚太平洋地区数据挖掘年会,从1997年开始,每年召开一次,第23届会议于2019年4月14日至17日在中国澳门举行。PKDD(EuropeanSymposiumonPrinciplesofDataMiningandKnowledgeDis
6、covery)是欧洲数据挖掘会议,也是从1997年开始,每年召开一次。但是从2008年开始,PKDD已和欧洲机器学习会议(EuropeanConferenceonMachineLearning,ECML)合并,称为ECMLPKDD,2019年ECMLPKDD于9月16日至20日在德国维尔茨堡举行。1.1.2数据挖掘系统的发展1.四代数据挖掘系统:基于技术角度的划分表1.1四代数据挖掘系统(1)第一代数据挖掘系统支持一个或少数几个数据挖掘算法,支持挖掘向量数据,作为一个独立的系统在单台机器上运行,数据一般一次性调进内存进行处理。典型的系统有SalfordSystem
7、s公司早期推出的CART系统等。(2)第二代数据挖掘系统能够与数据库管理系统(DBMS)集成,支持数据库和数据仓库系统,与它们具有高性能的接口,具有高的可扩展性,支持多个算法,能够挖掘一次不能放进内存的数据,而且有些系统还能够支持挖掘对象、文本和连续的媒体数据。典型的系统如DBMiner。(3)第三代数据挖掘系统除了可以与数据管理系统集成外,一个重要的优点是由数据挖掘系统产生的预言模型能够自动地被操作型系统吸收,从而与操作型系统中的预言模型相联合,提供决策支持的功能。另一个特点是支持半结构化数据和Web数据,能够挖掘网络环境下的分布式和高度异质的数据,并且能够有效地与操作型系统集成。典型的
8、系统如早期被SPSS公司收购的Clementine,以PMML格式提供与预言模型系统的接口。该系统现在被命名为IBMSPSSModeler,是IBM公司的数据挖掘工具之一。PredictiveModelMarkupLanguage(PMML)是一种和平台无关的统计和数据挖掘模型表示标准。通过定义规范化的数据挖掘建模过程以及统一的模型表达,PMML使得模型构造和基于模型的预测功能得以分离并可模块化实现,使得不同平台、不同数据挖掘产品之间能够共享所获得的数据挖掘模型,并为基于模型的可视化提供了条件。(4)第四代数据挖掘系统第四代数据挖掘系统旨在挖掘嵌入式系统、移动系统及各种普适计
9、算设备产生的各种类型数据。普适计算(ubiquitouscomputing)是软件工程和计算机科学中的概念,指计算可以使用任何设备,在任何位置,以任何格式进行。用户与计算机交互,计算机可以许多不同的形式存在,包括膝上型计算机、平板电脑和日常生活中的终端,例如汽车、冰箱或一副眼镜。物联网的不断发展,云计算、雾计算技术的广泛应用,将会进一步推动第四代数据挖掘系统的研究与发展。2.数据挖掘系统发展的三个阶段:基于应用角度的划分(1)独立的数据挖掘系统独立的数据挖掘系统对应第一代数据挖掘系统,如1993年Quinlan提出的C4.5决策树算法,1994年Agrawal和Srikant
10、提出的Apriori关联挖掘算法等。(2)横向的数据挖掘工具1995年前后,软件开发商开始提供称之为“工具集”的数据挖掘系统。典型的横向工具有IBM公司的IBMIntelligentMiner、IBMSPSSModeler和SAS公司的EnterpriseMiner等。(3)纵向的数据挖掘解决方案从1999年开始,国外大量的数据挖掘工具研制者开始提供纵向的数据挖掘解决方案,即针对特定的应用提供完整的数据挖掘方案。1.1.3当前热点和未来趋势1.云计算与大数据(1)云计算什么是云计算众说纷纭云计算不仅是技术,更是一种全新的商业服务模式。云计算服务,以云资源为
11、实现基础,以云计算技术为实现保障,以低成本、按需付费的形式,向用户提供软(硬)件基础设施、计算平台和软件服务,使用户在无基础投入的前提下直接实现数据的存储、管理和分析,也可利用提供的云服务平台创建和开发应用程序,或直接使用云服务平台提供的各类服务软件。(2)大数据相对一致的说法:大数据是超出了典型(传统、常用)硬件环境和软件工具收集、存储、管理和分析能力的数据集。什么是大数据请谈谈你所了解的大数据如何理解大数据是下一个社会发展阶段的金矿和石油?大数据“4V”特征:数据量大(Volume)、产生和处理的速度快(Velocity)、形式多样(Variety)、价值密度低但价值量大(V
12、alue)。如何理解云计算时代大数据挖掘?2.从数据角度看当前热点(1)Web数据挖掘Web数据挖掘是数据挖掘技术在Web上的应用,是从Web的网页内容、超链接结构和用户使用日志中获取有用知识的过程,包括Web内容挖掘、Web结构挖掘和Web使用挖掘。Web内容挖掘是指从Web上的文本、图像、音频、视频等其他各种类型数据及通过Web可以访问的数据库中的数据中发现有用知识的过程。Web结构挖掘是从Web的组织结构和链接关系中发现有用知识的过程。Web使用挖掘是从保留在Web服务器日志的用户访问和交互数据中提取有用信息的过程。(2)文本数据挖掘文本数据挖掘是从半结构化或非结构化文本中获取用户有
14、JiaWeiHan,MichellineKamber,JianPei.数据挖掘概念与技术1.2.1Fayyad过程模型图1.5Fayyad过程模型实际使用过程中可能存在什么问题?早期开发的大部分数据挖掘系统都是遵循Fayyad过程模型,例如IBMIntelligentMiner和SASEnterpriseMiner等。1.2.2CRISP-DM过程模型cross-industrystandardprocessfordatamining,即跨行业数据挖掘过程标准图1.6CRISP-DM过程模型由SPSS、NCR以及当时的戴姆勒-克莱斯勒等公司在1996年提出,后来
15、得到欧洲共同体研究基金的资助。2000年8月,CRISP-DM1.0版正式推出。CRISP-DM强调,数据挖掘不单是数据的组织或者呈现,也不仅是数据分析和统计建模,而是一个从理解业务需求、寻求解决方案到接受实践检验的完整过程。1.商业理解图1.7商业理解的一般任务(加粗显示部分)和输出2.数据理解图1.8数据理解的一般任务(加粗显示部分)和输出文档3.数据准备图1.9数据准备的一般任务(加粗显示部分)和输出文档4.建模图1.10建模一般任务(加粗显示部分)和输出文档5.评价图1.11评价一般任务(加粗显示部分)和输出文档6.部署图1.12部署一般任务(加粗显示部分)
16、和输出文档1.3数据挖掘功能与使用技术1.3.1数据挖掘功能图1.13数据挖掘的主要功能特征性描述和区别性描述孤立点检测连续型变量的预测类别型变量的预测1.3.2数据挖掘使用技术图1.14数据挖掘使用技术数据挖掘的产生和发展一直受应用驱动。随着应用不断拓宽,其所使用的技术也越来越丰富,而且还将持续发展,如图1.14所示。统计学数据挖掘并不是为了替代传统的统计分析技术,而是统计分析方法的延伸和扩展。Ganesh(2002)认为,从统计学的视角看,数据挖掘可以被看成是对大容量复杂数据的计算机自动化的探索和分析,可以被认为是“智能化统计”13。2.机器学习根据学习方式不同,可以分为有
17、监督学习(supervisedlearning)、无监督学习(unsupervisedlearning)、半监督学习(semi-supervisedlearning)和强化学习(reinforcementlearning)。用于有监督学习训练的数据集包含输入(特征)和输出(目标),也称为有标记的数据集。从有标记数据集中根据输入和输出学习出一个模型,即为有监督学习。用于无监督学习训练的数据集只包含输入(特征),而没有输出(目标),也称为无标记数据集。从无标记数据集中通过学习进行归纳,即为无监督学习。有两个数据集用于半监督学习,一个为有标记的数据集,一个为无标记的数据集,通常无标记数据集的
18、数据量要远远大于有标记数据集的数据量。为了最大限度利用现有数据的信息,我们希望使用两个数据集进行学习。用户可以在有标记数据集中加入无标记数据,增强有监督学习的效果,如半监督支持向量机;也可以在无标记数据集中加入有标记数据,增强无监督学习的效果,如半监督聚类。强化学习是智能体(agent)在尝试的过程中学习在特定的环境下选择哪种行动可以得到最大的回报。3.数据库与数据仓库利用可伸缩的数据库技术,数据挖掘可以在大型数据集上获得高效率和可伸缩性。同时,数据挖掘技术也有利于扩充数据库系统的能力,满足高端用户复杂的数据分析需求,实现商务智能。尽管对于小型数据库或者在线处理任务不多的数据库,直接从日常数
24、,实现分析过程自动化。实验者界面有两种模式:简单和高级。3.知识流界面知识流界面允许用户从设计面板中选择数据源、预处理工具、学习算法、评估方法和可视化等Weka组件,放置在布局区域,并将它们连接起来形成“知识流”,进行数据处理和分析。图2.4Weka知识流界面4.工作台界面从Weka3.8.0版本开始,新增了工作台界面。工作台界面如图2.5所示,集成了原有的四个界面,方便操作。图2.5Weka工作台界面5.简单命令行界面简单命令行界面是为不具有命令行界面的操作系统提供的,通过该界面,用户可以直接执行Weka命令。图2.6Weka简单命令行界面2.2IBMSPSSModele
25、r2.2.1IBMSPSSModeler简述1992年起,英国ISL软件公司(IntegralSolutionsLimited)与英国萨塞克斯大学的人工智能研究者合作,进行数据挖掘工具的开发。开发者将该软件命名为Clementine,并于1994年6月9日发布了Clementine的第一个正式版本。Clementine是世界上首款采用图形用户界面的数据挖掘工具。1998年,SPSS公司收购了ISL公司并继续对Clementine进行开发,收购后软件改名为SPSSClementine。2008年,SPSS公司将该软件命名为SPSSPASWModeler。2009年,IBM公
26、司收购了SPSS公司后,将该软件重新命名为IBMSPSSModeler,并持续开发完善,不断推出新版本。/cn-zh/products/spss-modeler可提交试用申请,享受30天的免费试用期。2.2.2IBMSPSSModeler主界面及功能图2.7IBMSPSSModeler主界面IBMSPSSModeler的主界面如图2.7所示,分为4个区域:数据流构建区、节点区、流管理区和项目管理区。1.数据流构建区数据流构建区又被称为画布,是数据挖掘分析人员的主要工作区域。图2.8数据流构建区2.节点区节点区包含了分析需要的所有节点,按功能分成11类,分别为:收藏夹
27、、源、记录选项、字段选项、图形、建模、输出、导出、Python、Spark和TextAnalytics。存放常用的功能节点导入不同格式数据对记录(行)进行预处理对字段(列)进行预处理图形功能节点建模节点获取数据和模型信息数据结果导出到各种格式的文件中进行保存使用Python算法的节点使用Spark原生算法的节点用于文本分析的节点3.流管理区流管理区包含“流”“输出”和“模型”选项卡4.项目管理区项目管理区包含CRISP-DM和“类”选项卡2.3R语言2.3.1R语言简述R语言是一套完整的数据处理、计算和图形展示系统,可以运行在多种平台上,包括Windows、UNIX和MacOS。可
28、通过/下载。本书编写时,R的最新版本是3.6.1。R3.6.1在Windows系统下的启动界面如图2.25所示。图2.25R3.6.1启动界面2.3.2RStudioRStudio是R的首选集成开发环境(integrateddevelopmentenvironment,IDE),专门用于R语言,旨在帮助使用者提高R的工作效率。开源版本可以从其官网/products/rstudio/download/下载安装。图2.26RStudio启动界面RStudio有两种格式:RStudioDesktop和RStudioServer。桌面开源版启动界面如图2.26所示。2.3.3R
30、处理的数据规模受到限制。现在这个问题已得到了一定的解决,可以利用并行工具包parallel(snow、multicores),Rmpi和foreach提升R的数据处理能力,或者利用R结合Hadoop的方式进行大数据挖掘。RHadoop是由RevolutionAnalytics发起的一个开源项目,它将R与Hadoop结合起来,用于在R环境中对大数据进行操作。目前该项目有五个R软件包,其中主要的三个R软件包为rmr2、rhdfs和rhbase。这三个软件包的下载地址为:/RevolutionAnalytics/RHadoop/wiki/Downloads。2.4Python语言2.4.1
32、与数据分析项目Python库功能数据预处理NumPy科学计算基础库,提供快速高效的多维数组对象ndarray,针对数组运算提供大量的数学函数库,可实现线性代数运算、傅立叶变换以及随机数生成SciPy构建于NumPy之上,包含的模块有最优化、线性代数、积分、差值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解等Pandas数据结构和数据分析库,包含高级数据结构和类SQL语句,提供快速便捷处理结构化数据的大量函数,可实现大型数据集的切分、多方式索引及子集构造,支持数据集的聚合、灵活转换、智能的数据分组和缺失值处理等数据可视化Matplotlib数据可视化库,提供大量创建各种图形的工具
34、e的机器学习API,实现开发和管理机器学习管道的功能,可以用来进行特征提取、转换及选择和各种机器学习算法,如分类、回归和聚类等TensorFlow采用数据流图(dataflowgraphs),用于数值计算的开源软件库,是深度学习最流行的算法库之一,支持CNN、RNN和LSTM算法等2.4.3AnacondaAnaconda是最流行的Python/R数据科学平台,分为发行版和企业版两种,支持Linux、Windows和MacOS系统。发行版仅支持单机运行,是免费的,其下载地址为:/distribution。Anaconda发行版还提供一个桌面图形用户界面(GUI),允许在不使用命令行命令
35、的情况下启动应用程序并轻松管理软件包、环境和通道。在Home选项卡下,Navigator默认提供以下应用程序:Glueviz、JupyterLab、JupyterNotebook、Orange3、Spyder、VSCode和RStudio,高级用户还可以构建自己的Navigator应用程序,如图2.32所示。图2.32AnacondaNavigatorHome选项卡在Environments选项卡,可以管理已安装的环境、软件包和通道,如图2.33所示。图2.33AnacondaNavigatorEnvironments选项卡在Learning选项卡,可以了解有关Navigat
37、化数据和非结构化数据三种。1.结构化数据结构化数据指可以按特定的数据结构来表示的数据,常见的如Excel、SQLServer等二维表数据,如表3.1所示。按照所采用的计量尺度,结构化数据可以分为标称(nominal)数据、序数(ordinal)数据、区间(interval)数据和比率(ratio)数据四类。这四类数据也常被称为定类数据、定序数据、定距数据和定比数据。表3.1结构化数据2.半结构化数据半结构化数据介于完全结构化数据和完全无结构化数据之间。它具有结构化的特点,包含某些标记,可以用来分隔语义元素以及对记录和字段进行分层,所以不能简单地将它组织成一个文件按照非结构化数据处理;但
38、因为结构会变化,所以也不能使用关系型数据库或其他数据库二维表的形式来表示。常见的有HTML、XML和JSON等类型。3.非结构化数据非结构化数据是指结构不规则或不完整,没有预定义的数据模型,不方便用二维逻辑表结构来表示的数据,包括文本文档、图像、音频、视频等。3.1.2数据环境与数据类型数据环境指数据产生、存储、处理和分析所处的物理环境,常见的数据环境有生产环境和分析环境。根据数据所处的环境,可以把数据分为三种类型:生产数据、原始数据和分析数据。图3.2数据环境与数据类型3.2关系型数据库3.2.1关系型数据库概述关系型数据库是指采用了关系模型来组织数据的数据库。关系模型是用二维表
40、解。(2)使用方便采用SQL技术标准,通用的SQL语句使得操作关系型数据库非常方便。(3)易于维护关系型数据库的ACID属性,大大降低了数据冗余和数据不一致的概率,易于维护。其瓶颈主要表现在以下几个方面。(1)高并发性许多网站,对于并发读写能力要求极高,常常达到每秒上万次的请求。对于传统关系型数据库,基于硬盘的读写是一个很大的挑战,已经无法应付。(2)高扩展性和高可用性当一个应用系统的用户量和访问量与日俱增的时候,关系型数据库没有办法简单地通过添加更多的硬件和服务节点来拓展性能和负载能力。3.2.2关系型数据库管理系统关系型数据库管理系统(relationaldatabaseman
41、agementsystem,RDBMS)用于建立、使用和维护关系型数据库。图3.4关系型数据库管理系统与关系型数据库及应用系统间的关系3.3NoSQL数据库NoSQL即NotOnlySQL,是对非关系型数据库的泛称。NoSQL没有采用统一的技术标准来定义和操作数据库,以分布式的数据处理技术为主。从数据存储类型看,目前流行的NoSQL数据库主要为键值存储、文档存储、列族存储和图存储四种模式。3.3.1键值数据库键值数据库(key-valuedatabase)是一类采用键值存储模式、结合内存处理为主的NoSQL数据库。Redis(remotedictionaryserver)是
43、的网页访问量。(2)分布式处理分布式处理技术使其具备处理大数据的能力,可以把PB级的数据分布到多台服务器的内存进行计算。(3)对值的查找功能很弱键值数据库是以键为主要对象进行各种操作,包括查找功能,因此对值直接进行查找的功能很弱。(4)不易建立复杂关系键值数据库不易建立传统关系型数据库多表关联那样的复杂关系,只能进行两个数据集之间的有限计算。(5)容易出错键值数据库使用弱存储模式,不需要预先定义键和值所存储的数据类型,在使用过程中容易出错。3.3.2文档数据库文档数据库通常以XML、JSON或BSON(binaryserializeddocumentformat)格式将半结
44、构化的数据存储为文档,以磁盘读写为主,实现分布式处理。MongoDB是广受欢迎的文档数据库。文档数据库的存储模式文档数据库借用了键值对的存储形式,若干个键值对存储在带“”的大字段中,一个大字段被称为一个文档,如图3.5所示。图3.5文档数据库中的文档其官网地址为:/2.文档数据库的特点(1)简单、高效文档数据库数据存储结构简单(2)查询功能较强相对于键值数据库,文档数据库的查询功能更为强大。(3)分布式处理文档数据库具备分布式处理功能(4)基于磁盘读写操作文档数据库主体是基于磁盘读写,并进行数据操作。3.3.3列族数据库列族数据库将经常被一起查询的数据存储在列族中,如广受欢
48、种:从属数据集市与独立数据集市。图3.10从属数据集市与独立数据集市3.元数据与数据粒度(1)元数据元数据是描述数据的数据。在数据仓库中,元数据用于描述数据仓库内数据的结构、位置和建立方法等。从用户的角度,可以把元数据分为技术元数据和业务元数据。(2)数据粒度在数据仓库中,数据粒度用于度量数据单元的详细程度和级别。数据越详细,其粒度越小,级别也越低;数据越综合,其粒度越大,级别也越高。4.逻辑模型最流行的数据仓库的数据模型是多维数据模型,传统的数据仓库大多是基于关系型数据库搭建的。基于关系型数据库搭建的数据仓库扩展了关系数据库模型,以星形模型为主要结构方式,并在此基础上扩展出雪花形模
51、采用主/从(mater/slave)体系结构,一个HDFS集群拥有一个NameNode和若干个DataNode。NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作,同时还管理集群的元数据。DataNode存储实际的数据。2.HBaseHBase(hadoopdatabase)是ApacheHadoop项目的子项目,是建立在HDFS分布式文件存储系统之上的列族数据库。HBase的官网地址为/3.HiveHive是一个基于Hadoop的数据仓库工具,体系结构如图3.15所示。图3.15Hive体系结构Hive的官网地址为/4.分布式计算框架
53、apReduce处理流程(2)SparkSpark是加州大学伯克利分校AMP实验室开源的类HadoopMapReduce的通用并行框架,2013年被捐赠给Apache软件基金会,之后成为Apache的顶级项目。其基于SparkCore扩展了4个核心组件:SparkSQL、SparkStreaming、GraphX和MLlib,支持批处理、流处理和复杂的业务分析,用于满足不同领域的计算需求。Spark的官网地址为/(3)FlinkFlink是一个用于无边界和有边界数据流计算的分布式处理框架,诞生于柏林工业大学的StratoSphere研究性项目,2014年
54、被捐赠给Apache软件基金会,之后成为Apache的顶级项目。Flink的核心是流处理,但也支持批处理。Flink的官网地址为/(4)StormStorm是一个分布式实时计算系统,其创始人NathanMarz是BackType公司的核心工程师。2011年7月BackType被Twitter收购,收购没多久,Storm对外开源,许多互联网公司纷纷采用这一系统。Storm可以简单、可靠的方式进行大数据流的实时处理。Storm的官网地址为/5.SqoopSqoop即SQL到Hadoop和Hadoop到SQL,是Apache旗下一款Hadoop和关系数据
55、库服务器之间传送数据的工具。图3.17Sqoop工作流程Sqoop的官网地址为/6.FlumeFlume是一个分布式日志数据收集系统,由Cloudera公司于2009年赠与Apache软件基金会。Flume的官网地址为/图3.18Flume工作流程7.ZookeeperZookeeper用于分布式协调和管理服务。其提供的常见服务和管理包括:命名服务、配置管理、集群管理、锁定和同步服务及队列管理等。Zookeeper的官网地址为/谢谢!欢迎指正!数据挖掘方法与应用第4章数据预处理4.1数据预处理概述4.2数据清洗4.3数据集成4.4数据变换4.5数据归
56、约4.1数据预处理概述4.1.1原始数据中存在的问题1.数据缺失数据缺失分为两种,一种是基于某些分析所必需的行记录或列属性的缺失,另一种是在一些记录上缺少某些属性值。某些记录上属性值的缺失在原始数据中较为常见。2.数据异常数据异常指数据集中存在的孤立点,这些数据处于其特定分布区域或范畴之外。根据其产生原因,可以分为“真异常”和“伪异常”,我们要检测和纠正的是“真异常”。3.数据重复数据重复包括记录的重复和属性的重复。4.数据不一致数据不一致包括数据记录内部的自相矛盾和多数据源之间的不一致。5.数据高维性数据高维性主要指原始数据中存在大量对于某次具体挖掘任务没有用的维度(属性)。6
58、2数据清洗4.2.1缺失数据处理对于缺失数据的处理思路:首先要了解缺失数据在整体样本中的比例;然后分析清楚缺失的可能原因,再结合后续要使用的模型,决定可采用的方法。常用的缺失数据处理方法:1.删除2.使用一个固定的值代替缺失值3.使用属性平均值代替缺失值4.使用同一类别的均值代替缺失值5.使用成数推导值代替缺失值6.使用最可能的值代替缺失值4.2.2异常数据处理数据异常处理的主要任务就是检测出孤立点1.可视化方法2.置信区间检验方法3.箱型图分析法4.基于距离的方法5.基于聚类的方法对于结构化数据,孤立点检测常用的方法有若孤立点是度量或执行错误所导致的,则可将其: