数据挖掘
数据挖掘简述
数据是原材料,它只是描述发生了什么事情,并不能构成决策或行动的可靠基础。通过对数据进行分析找出其中关系,赋予数据以某种意义和关联,这就形成所谓信息。信息虽给出了数据中一些有一定意义的东西,但它往往和人们需要完成的任务没有直接的联系,也还不能做为判断、决策和行动的依据。对信息进行再加工,即进行更深入的归纳分析,方能获得更有用的信息,即知识。而所谓知识,可定义为“信息块中的一组逻辑联系,其关系是通过上下文或过程的贴近度发现的”。从信息中理解其模式,即形成知识。
数据仓库
随着数据量的增长,多数据源所带来的各种数据格式不相容性,为了便于获得 决策所需信息,就有必要将整个机构内的数据以统一形式集成存储在一起,这就是 形成了数据仓库(data warehousing)。数据仓库不同于管理日常工作数据的数据库, 它是为了便于分析针对特定主题(subject-oriented )的集成化的、时变的(time-variant)即提供存贮5-10年或更长时间的数据,这些数据一旦存入就不再发生变化。
从数据仓库的角度来看,数据挖掘可以被认为是在线分析处理(OLAP)的高 级阶段,但是基于多种数据理解先进技术的数据挖掘,其数据分析能力要远超过以 数据汇总为主的数据仓库在线分析处理功能。
目前市场有许多所谓“数据挖掘系统”,实际上它们仅仅是一个基于统计的数 据分析工具,或一个机器学习工具。数据挖掘有机结合了来自多学科技术,其中包 括:数据库、数理统计、机器学习、高性能计算、模式识别、神经网络、数据可视 化、信息检索、图像与信号处理、空间数据分析等,这里我们强调数据挖掘所处理 的是大规模数据,且其挖掘算法应是高效的和可扩展的。通过数据挖掘,可从数据 库中挖掘出有意义的知识、规律,或更高层次的信息,并可以从多个角度对其进行 浏览察看。所挖掘出的知识可以帮助进行决策支持、过程控制、信息管理、查询处 理等等。因此数据挖掘被认为是数据库系统最重要的前沿研究领域之一,也是信息 工业中最富有前景的数据库应用领域之一。
异类分析
一个数据库中的数据一般不可能都符合分类预测或聚类分析所获得的模型。那些不符合大多数数据对象所构成的规律(模型)的数据对象就被称为异类(outlier)。之前许多数据挖掘方法都在正式进行数据挖掘之前就将这些异类作为噪声或意外而将其排除在数据挖掘的分析处理范围之内。但在一些应用场合,如各种商业欺诈行为的自动检测,小概率发生的事件(数据)往往比经常发生的事件(数据)更有挖掘价值。对异类数据的分析处理通常就称为异类挖掘。
示例:异类分析可以用于从大量商品购买记录中,依据各帐户平常所发生的 购买行为,发现正在进行信用卡诈骗的购买行为(异类行为)。例如:可以根据购买 的发生地点、购买商品类型和购买频率等发现属于信用卡诈骗的购买行为(异类数 据)。
对于一个商场而言,与去年同期相比,今年的商品销售累计的下降,就是一种 异常情况;若下降幅度较大时,就可以利用数据挖掘工具来帮助分析解释这一异常 情况,如:与去年同期相比,今年公司雇用的人员较少。
演化分析
数据演化分析(evolution analysis)就是对随时间变化的数据对象的变化规律和趋势进行建模描述。这一建模手段包括:概念描述、对比概念描述、关联分析、分类分析、时间相关数据(time-related)分析(这其中又包括:时序数据分析、序列或周期模式匹配,以及基于相似性的数据分析)
由于数据库系统所获数据量的迅速膨胀,从而导致了现实世界数据库中常常包含许多含有噪声、不完整(missing)、甚至是不一致(inconsistent)的数据。显然对数据挖掘所涉及的数据对象必须进行预处理。那么如何对数据进行预处理以改善数据质量,并最终达到完善最终的数据挖掘结果之目的呢?
数据预处理主要包括:数据清洗(data cleaning)、数据集成(data integration)、数据转换(data transformation)和数据消减(data reduction)。本章将介绍这四种数据预处理的基本处理方法。
所谓噪声数据是指数据中存在着错误、或异常(偏离期望值)的数据;不完 整(incomplete)数据是指感兴趣的属性没有值;而不一致数据则是指数据内涵 出现不一致情况(如:作为关键字的同一部门编码出现不同值)。而数据清洗是 指消除数据中所存在的噪声以及纠正其不一致的错误;数据集成则是指将来自多 个数据源的数据合并到一起构成一个完整的数据集;数据转换是指将一种格式的 数据转换为另一种格式的数据;最后数据消减是指通过删除冗余特征或聚类消除 多余数据。
数据清洗(data cleaning)处理例程通常包括:填补遗漏的数据值、平滑有 噪声数据、识别或除去异常值(outlier),以及解决不一致问题。有问题的数据将 会误导数据挖掘的搜索过程。尽管大多数数据挖掘过程均包含有对不完全 (incomplete)或噪声数据的处理,但它们并不鲁棒且常常将处理的重点放在如 何避免所挖掘出的模式对数据过分准确(overfitting)的描述上。因此使用一些 数据清洗例程对待挖掘的数据进行预处理是十分必要的。稍后我们将详细介绍数 据清洗有关具体方法。
数据消减(data reduction)的目的就是缩小所挖掘数据的规模,但却不会影响(或基本不影响)最终的挖掘结果。现有的数据消减包括:(1)数据聚合(data aggregation),如:构造数据立方(cube);(2)消减维数(dimension reduction),如:通过相关分析消除多余属性;(3)数据压缩(data compression),如:利用编码方法(如最小编码长度或小波);(4)数据块消减(numerosity reduction),如:利用聚类或参数模型替代原有数据。此外利用基于概念树的泛化(generalization)也可以实现对数据规模的消减,有关概念树的详情将在稍后介绍。
数据集成
数据挖掘任务常常涉及数据集成操作,即将来自多个数据源的数据,如:数据库、数据立方(data cubes)、普通文件等,结合在一起并形成一个统一数据集合,以便为数据挖掘工作的顺利完成提供完整的数据基础。
在数据集成过程中,需要考虑解决以下几个问题:
(1)模式集成(schema integration)(2)冗余问题 (3)数据值冲突检测与消除。
数据转换处理
(1)平滑处理。
(2)合计处理。
(3)数据泛化处理(generalization)。所谓泛化处理就是用更抽象(更高层次)的概念来取代低层次或数据层的数据对象。例如:街道属性,就可以泛化到更高层次的概念,诸如:城市、国家。同样对于数值型的属性,如年龄属性,就可以映射到更高层次概念,如:年轻、中年和老年。
(4)规格化。规格化就是将有关属性数据按比例投射到特定小范围之中。如将工资收入属性值映射到-1.0 到 1.0 范围内。
(5)属性构造。根据已有属性集构造新的属性,以帮助数据挖掘过程。
数据消减
对大规模数据库内容进行复杂的数据分析通常需要耗费大量的时间,这就常常使得这样的分析变得不现实和不可行,尤其是需要交互式数据挖掘时。数据消减技术正是用于帮助从原有庞大数据集中获得一个精简的数据集合,并使这一精简数据集保持原有数据集的完整性,这样在精简数据集上进行数据挖掘显然效率更高,并且挖掘出来的结果与使用原有数据集所获得结果基本相同。
数据消减的主要策略有以下几种:
(1)数据立方合计(data cube aggregation),这类合计操作主要用于构造数据立方(数据仓库操作)。
(2)维数消减,主要用于检测和消除无关、弱相关、或冗余的属性或维(数据仓库中属性)。
(3)数据压缩,利用编码技术压缩数据集的大小。
(4)数据块(numerosity)消减,利用更简单的数据表达形式,如:参数模 型、非参数模型(聚类、采样、直方图等),来取代原有的数据。
(5)离散化与概念层次生成。所谓离散化就是利用取值范围或更高层次概念来替换初始数据。利用概念层次可以帮助挖掘不同抽象层次的模式知识。稍后我们专门介绍概念层次树。
从数据分析角度出发,数据挖掘可以分为两种类型:描述型数据挖掘和预测型数据挖掘。前者是以简洁概述的方式表达数据中的存在一些有意义的性质;而后者则通过对所提供数据集应用特定方法分析所获得的一个或一组数据模型,并将该模型用于预测未来新数据的有关性质。
数据库通常包含了大量细节性数据,然而用户却常常想要得到能以简洁描述性方式所提供的概要性总结(summerized)。这样的数据摘要能够提供一类数据的整体情况描述;或与其它类别数据相比较的有关情况的整体描述。此外用户通常希望能轻松灵活地获得从不同角度和分析细度对数据所进行的描述。描述型数据挖掘又称为概念描述(concept description),它是数据挖掘中的一个重要组成部分 本章就将主要介绍如何有效地进行定性归纳以获得概念描述的有关内容。