数据挖掘(Data Mining,DM)是指从大量的、有噪声的、不完全的、模糊和随机的数据中,提取出隐含在其中的、人们事先不知道的、具有潜在利用价值的信息和知识的过程 [1] 。这个定义包括几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求它是放之四海皆准的知识,仅支持特定的发现问题;所提取到的知识的表示形式可以是概念、规律、规则与模式等。数据挖掘能够对将来的趋势和行为进行预测,从而帮助决策者做出科学和合理的决策。例如,通过对公司数据库系统的分析,数据挖掘可以回答类似“哪些客户最有可能购买我们公司的什么产品”“客户有哪些常见的消费模式和消费习惯”等问题。
与数据挖掘相似的概念是知识发现(Knowledge Discovery in Databases,KDD),知识发现是指用数据库管理系统来存储数据、用机器学习方法来分析数据,挖掘大量数据背后隐藏的知识的过程。数据挖掘是整个知识发现流程中的一个具体步骤,也是知识发现过程中最重要的核心步骤。
数据挖掘是一个交叉学科,涉及数据库、人工智能、统计学、机器学习、模式识别、高性能计算、知识工程、神经网络、信息检索、信息的可视化等众多领域,其中数据库、机器学习、统计学对数据挖掘的影响最大,数据库为数据挖掘提供数据管理和存储技术,机器学习和统计学为数据挖掘提供数据分析技术。数据挖掘所采用的算法,一部分是机器学习的理论和方法,如神经网络、决策树等;另一部分是基于统计学习理论,如支持向量机、分类回归树和关联分析等。但传统的机器学习算法的处理对象不是海量数据,因此数据挖掘要将机器学习算法用于海量数据中的知识发现,需要对算法进行改造,使得算法的时空效率达到实用条件。
继互联网、物联网、云计算的不断发展及智能终端的普及,海量复杂多样的数据呈现出爆发式的增长,标志着“大数据”时代的到来。作为重要的生产因素,大数据已成为蕴含巨大潜在价值的战略资产,推动着产业升级和崛起,影响着科学思维与研究方法的变革。然而,大数据在依托其丰富的资源储备和借助强大的计算技术发挥优势的同时,也带来了极大的挑战。海量、动态及不确定的数据使得传统数据处理系统面临存储和计算瓶颈,同时,就如何从复杂的大数据中实时快速地挖掘出有价值的信息和知识,传统的数据挖掘技术自身受限的功能已无法满足用户的需求。因此,大数据环境下需要一种适用技术,即“大数据挖掘”,来应对面临的挑战 [2] 。
大数据挖掘是指从体量巨大、类型多样、动态快速流转及价值密度低的大数据中挖掘有巨大潜在价值的信息和知识,并以服务的形式提供给用户。与传统数据挖掘相比,大数据挖掘同样是以挖掘有价值的信息和知识为目的,然而就技术发展背景、所面临的数据环境及挖掘的广度和深度而言,两者存在很多差异。
1.技术背景差异
传统数据挖掘在数据库、数据仓库及互联网发展等背景下,实现了从独立、横向到纵向数据挖掘的发展。而大数据挖掘在大数据背景下得益于云计算、物联网、移动智能终端等技术的产生与发展,具备了充实环境技术条件,基于云计算等相关技术集成,实现了海量数据的挖掘。
2.处理对象的差异
传统数据挖掘的数据来源主要以某个特定范围的管理信息系统被动数据的产生为主,外加少数的Web信息系统中由用户产生的主动数据;数据类型以结构化数据为主,外加少量的半结构化数据或非结构化数据。相比于传统数据挖掘,大数据挖掘的数据来源更广、体量更巨大、类型更复杂;采集方式不再局限于被动,采集范围更全面,吞吐量更高,处理实时且快速,但由于对数据的精确度要求不高,所以数据的冗余度和不确定性较高。
3.挖掘程度差异
大数据挖掘与传统数据挖掘处理分析数据的广度、深度也存在差异。在复杂类型、结构及模式的数据交错融合时,大数据挖掘能利用云平台集成多种计算模式与挖掘算法对庞杂的数据进行实时处理与多维分析,其处理数据的范围更广,挖掘分析更加全面深入。
总体而言,大数据挖掘在大数据环境下,以大数据为来源,依托云计算及大数据相关技术的支撑,利用挖掘工具发现潜在的、有价值的信息和知识,并将结果以云服务的方式提供给用户。
在大数据时代,数据的产生和收集是基础,数据挖掘是关键,即数据挖掘是大数据中最关键、最有价值的工作。数据挖掘可以用以下3个特性概括 [3] 。
1.应用性
数据挖掘是理论算法和应用实践的完美结合。数据挖掘源于实际生产生活中应用的需求,挖掘的数据来自具体应用,同时通过数据挖掘发现的知识又要运用到实践中,辅助实际决策。所以,数据挖掘来自应用实践,同时服务于应用实践。
2.工程性
数据挖掘是一个由多个步骤组成的工程化过程。数据挖掘的应用特性决定了数据挖掘不仅是算法分析和应用,还是一个包含数据准备和管理、数据预处理和转换、挖掘算法开发和应用、结果展示和验证,以及知识积累和使用的完整过程。而且在实际应用中,典型的数据挖掘过程还是一个交互和循环的过程。
3.集合性
数据挖掘是多种功能的集合。常用的数据挖掘功能包括数据探索分析、关联规则挖掘、时间序列模式挖掘、分类预测、聚类分析、异常检测、数据可视化和链接分析等。一个具体的应用案例往往涉及多个不同的功能。不同的功能通常有不同的理论和技术基础,而且每个功能都有不同的算法支撑。
总而言之,数据挖掘源于实践中的实际应用需求,用具体的应用数据作为驱动,以算法、工具和平台作为支撑,最终将发现的知识和信息用到实践中,从而提供量化、合理、可行、能够产生巨大价值的信息。
数据挖掘的任务主要分为描述性任务和预测性任务 [4,5] 。描述性任务刻画目标数据中数据的一般性质,如通过客户行为特征,将客户进行不同类型的聚类划分。预测性任务在当前数据上进行归纳,以便做出预测。例如,通过一个消费者的消费情况判断是否会成为自己的重要客户。
常见的数据挖掘功能包括分类、聚类、关联分析、数据总结、离群点分析和预测等,其中聚类、关联分析、数据总结、离群点分析是描述性任务,分类和预测是预测性任务。
1.分类
分类是一种重要的数据分析形式,它找出描述和区分数据类型或概念的模型。这种模型称为分类器,用于预测分类的类标号。它是一种监督学习,即分类器的学习是在被告知每个训练元组属于哪个类的“监督”下进行的。
常见的分类模型包括分类规则、决策树和神经网络。
2.聚类
聚类是一个把数据对象划分成子集的过程,每个子集是一个簇。数据对象根据最大化类内相似性、最小化类间相似性的原则进行聚类。它是一种无监督学习,因为没有提供类标号信息。
3.关联分析
若两个或多个变量的特征值之间存在某种相关性,则称为关联。关联规则反映了事物之间的依赖性或关联性。关联分析是指查找和分析出事物与事物之间潜藏的关系规律。
4.数据总结
对数据进行浓缩,给出它的紧凑性描述。数据描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。
5.离群点分析
数据集中可能包含一些数据对象,它们与数据的一般行为或模型不一致。这些数据对象是离群点。大部分的数据挖掘方法将离群点视为噪声而丢弃。但是,在某些应用(如欺诈检测)中,罕见事件更让人感兴趣,称为离群点分析。
6.预测
通过对样本数据的输入值和输出值的关联性学习,得到预测模型,再利用该模型对未来的输入值进行输出值预测。
数据挖掘是一种通用技术,数据挖掘的对象 [6] 可以是任何类型的数据。数据可以分为结构化数据、半结构化数据和非结构化数据。在数据挖掘的应用中,数据最基本的形式是结构化数据,即数据库数据、数据仓库数据和事务数据,但是目前数据挖掘有向处理非结构化数据发展的趋势,非结构化数据包括序列数据、图或网络数据、空间数据、文本和多媒体数据、万维网数据等。
1.数据库数据
数据库(DB)是依照某种数据模型组织起来,并存放于外部存储器中的数据集合。
数据库管理系统(DBMS)是一种操纵和管理数据库的大型系统软件,用于建立、使用和维护数据库。
关系数据库是当前数据库技术的主流。在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库。关系数据库是表的集合,每个表都包含一组属性(字段)和元组(记录)。
当数据挖掘用关系数据库作为数据源时,可以从数据库中直接查询数据挖掘需要的数据,或者对查询的结果数据进行筛选、转换和汇总等操作以得到数据挖掘需要的数据。关系数据库是数据挖掘中最常见、最丰富的信息源,因此它是数据挖掘研究的一种主要数据形式。
2.数据仓库
数据仓库是一个面向主题、集成性、稳定性和时变性的数据集合系统,用于支持管理人员的决策。数据仓库通过数据清理、数据变换、数据集成、数据装入和定期数据刷新来构造。为便于决策,数据仓库中的数据围绕主题(如顾客、商品)组织。数据存储从时间的角度提供信息,并且通常是汇总的。数据仓库用称为数据立方体的多维数据结构建模。
数据仓库是数据挖掘的最佳数据源,因为在构建数据仓库的过程中,按照分析的主题已经进行了数据清洗、数据集成和数据转换等处理,如果数据在导入数据仓库时已做过预处理,那么数据挖掘时就没有必要再进行预处理了。
3.事务数据
事务是计算机系统完成的一次交易,如顾客的一次购物、一次航班订票。事务数据库的每个记录代表一个事务。一个事务包含唯一的事务标识号,以及一个组成事务的项的列表。
4.其他类型数据
对于非结构化数据的表述方式,不存在统一的结构模型。各种文档、图片、视频和音频等都属于非结构化数据,非结构化数据在互联网上的信息内容中占据了很大的比例。随着“互联网+”战略的实施,将有越来越多的非结构化数据产生。目前,结构化数据分析挖掘技术已经形成了相对比较成熟的技术体系,而非结构化数据中没有限定结构形式,表示灵活,蕴含信息丰富,所以非结构化数据挖掘的挑战更大。因此,在未来的数据分析挖掘中,非结构化数据处理将变得更加重要。
非结构化数据在很多应用中都有显现,如时间相关或序列数据(如历史记录、股票交易数据、时间序列和生物学序列数据)、数据流(如视频监控和传感器数据,它们连续播送)、空间数据(如地图)、工程设计数据(如建筑数据、系统部件或集成电路)、超文本和多媒体数据(包括文本、图像、视频和音频数据)、图和网状数据(如社会和信息网络)和万维网(包括互联网提供的矩形、广泛分布的信息存储库)。
在现代数据挖掘中,数据源往往同时包含多个数据类型。一方面,异构数据的数据源可以相互提升和加强,挖掘复杂对象的多个数据源会有更有价值的发现;另一方面,异构数据源的数据清理和数据集成比较困难,增加了挖掘工作的难度。
1999年,欧盟创建了跨行业的数据挖掘标准流程,即CRISP-DM(Cross Industry Standard Process for Data Mining),提供了一个数据挖掘生命周期的全面评述,包括业务理解、数据理解、数据准备、数据建模、模型评估和部署6个阶段 [7] ,如图1-1所示。
图1-1 CRISP-DM数据挖掘过程示意图
第1阶段:业务理解,主要任务是深刻理解业务需求,在需求的基础上制订数据挖掘的目标和实现目标的计划。
第2阶段:数据理解,主要任务是收集数据、熟悉数据、识别数据的质量问题,并探索引起兴趣的子集。
第3阶段:数据准备,从收集来的数据集中选择必要的属性(因素),并按关联关系将它们连接成一个数据集,进行数据清洗,即空值和异常值处理、离群值剔除和数据标准化等。
第4阶段:数据建模,选择应用不同的数据挖掘技术,并确定模型最佳的参数。如果通过初步分析发现模型的效果不太满意,那么要再跳回数据准备阶段,甚至数据理解阶段。
第5阶段:模型评估,对建立的模型进行可靠性评估和合理性解释,未经过评估的模型不能直接去应用。彻底地评估模型,检查构造模型的步骤,确保模型可以完成业务目标。如果评估结果没有达到预想的业务目标,那么要再跳回业务理解阶段。
第6阶段:部署,根据评估后认为合理的模型,制定将其应用于实际工作的策略,形成应用部署报告。