第一章 数据挖掘综述
近年来,随着信息技术的日益普及,各个领域的数据量都在急剧增加。成千上万的数据库被广泛应用于商业管理、行政管理、科学与工程数据管理以及其他各个不同的应用领域,并且这些数据库应用的数量正在像雨后春笋般不断涌现。这主要归因于数据存储技术的快速发展以及强大且经济的数据库系统的开发。现代计算机技术与数据库技术使我们能够将“数据洪流”转换为“整齐有序”但却是“堆积如山”的数据集合。
面对“堆积如山”的数据集合,无论在时间意义上还是空间意义上,传统的数据分析手段都难以对付。人们无法理解并有效地使用这些数据,这就迫使决策者不得不采用两种可能导致“数据灾难”的对策:其一是“穷于应付”;其二是“置之不理”。事实上,无论哪一种对策都是出于无奈,并由此导致越来越严重的“数据灾难”。无怪乎奈斯伯特(John Naisbett)惊呼:“We are drowning in the information,but starving for knowledge.”(人类被数据所淹没,但知识依然匮乏。)在需要对大量的数据进行分析之后才能作出正确决策的领域中,这是一个普遍存在的问题。
传统的数据分析方法,如电子报表、统计分析、特定查询等,都只能获得数据的表层信息,而不能获得数据各属性之间的内在联系和隐含信息,即不能获得重要的知识。于是快速的数据产生和收集技术与拙劣的数据分析方法之间就形成了尖锐的矛盾。这就需要新的技术来“智能地”和“自动地”分析这些原始数据,使消耗了大量财力与物力所收集与整理的宝贵数据资源能得以充分利用。这种需求引起了数据库、人工智能、统计学、数据仓库、在线分析处理、专家系统、高性能计算和数据可视化等研究领域学者的广泛重视。于是就使得数据挖掘和数据库知识发现技术应运而生。数据挖掘和数据库知识发现实际上是由上述各个学科相互交叉、融合所形成的一个新兴的研究领域,目前已成为国际上数据库、人工智能界研究的热点。
一、数据挖掘与知识发现
(一)基本概念
什么是数据挖掘?简单地说,数据挖掘是从大量数据中提取或“挖掘”知识。更确切地说,数据挖掘(Data Mining,简称DM)是指从大量数据中提取潜在的有用的信息,并从不同角度观察或浏览它们,从中发现的知识可以用于辅助决策、信息管理以及查询处理。它主要是基于人工智能、机器学习、统计学等技术高度自动化地分析数据,并作出归纳性的推理,从中挖掘出潜在的模式,从而帮助决策者作出正确的决策。与数据挖掘类似或相近的术语还有如数据库中知识挖掘、知识提取、数据/模式分析、数据考古和数据捕捞。
长期以来,在知识发现领域,数据挖掘(DM)和数据库知识发现(Knowledge Discovery in Databases,简称KDD)这两个术语的范畴和使用界限一直不是很清晰。知识发现术语在1989年的第一届KDD专题讨论上首次被采用,用于表示在数据库中发现知识的广泛进程。这个术语强调了知识是数据发现的最终产品,并很快在人工智能和机器学习领域得到了广泛应用。
在1996年KDD国际会议上,Fayyad、Piatetsky Shapiro和Smyth对KDD下了最新的定义:数据库知识发现(KDD)是指识别出存在于数据库中有效的、新颖的、具有潜在效用的、最终可理解的模式的非平凡过程。
KDD过程是一个多步骤的处理过程(如图1-1)。它主要包括以下一些处理步骤。
图1-1 数据库知识发现过程
1.数据准备
了解KDD相关领域的有关情况,熟悉有关的背景知识,并弄清楚用户的需求。
2.数据选择
根据用户的需求从数据库中提取与KDD相关的数据。KDD将主要从这些数据中进行知识提取。在此过程中,经常会利用一些数据库操作对数据进行处理。
3.数据预处理
主要是对前一阶段产生的数据进行加工,检查数据完整性和数据的一致性,对其中的噪音数据进行处理,对丢失的数据可以利用统计的方法进行填补。
4.数据缩减
对经过预处理的数据,根据知识发现的任务对数据进行再处理,主要通过投影、降维或数据转换等操作来减少数据量,降低数据的复杂性。
5.确定KDD目标
根据用户的需求,确定KDD是发现何种类型的知识。因为KDD要求不同,在具体的知识发现过程中将会采用不同的知识发现算法。
6.确定知识发现算法
根据步骤5所确定的任务,选择合适的知识发现算法,这包括选取合适的模型和合理的参数,并使得知识发现算法与整个数据库知识发现(KDD)的评判标准保持一致。
7.数据挖掘(DM)
运用选定的知识发现算法,从数据中提取出用户所关心的知识。这些知识可以用一种特定的方式表示或使用一些常用的表示方式,如产生式规则等。
8.模式解释
对发现的模式进行解释。在此过程中,为了取得更为有效的知识,可能会返回到前面处理过程中的某一步骤(环节)进行反复提取,从而提取出更加有效的知识。
9.知识呈现和评价
将发现的知识以用户能理解的方式呈现给用户。这期间也包括对知识一致性的检查,以确保本次发现的知识不与以前发现的知识相抵触。
整个发现过程并不是简单的线性流程,各步骤之间包含了循环和反复。这样就可以对所发现的知识不断地求精和深入,并使其易于理解。
Fayyad、Piatetsky Shapiro和Smyth等人认为:KDD是指从数据库中发现知识的全部过程,是应用特定的数据挖掘算法和评价解释模式的一个循环反复的过程,并要对所发现知识进行不断地求精和深化,使其易于理解;而DM只是这一过程中的一个特定步骤。即利用挖掘算法从数据中抽取模式,它并不包括数据的预处理、领域知识的结合以及发现结果的评价等步骤。
但也有很多学者如Han和R.Agrawal等人则认为:数据挖掘(DM)和数据库知识发现(KDD)是两个等价的概念。从数据挖掘定义可以看出,作为一个学术领域,数据挖掘和数据库知识发现具有很大的重合度。数据挖掘从理论和技术实现上继承了知识发现领域的成果,同时又有着独特的内涵。数据挖掘更着眼于设计高效的算法以达到从海量数据中快速发现知识的目的。数据挖掘充分利用了机器学习、人工智能、模糊逻辑、人工神经网络、分形几何等方面的理论和方法。因此,在很多情况下,数据库中的知识发现和数据挖掘两个术语往往不加以明确区分。
与数据挖掘关系密切的研究领域包括归纳学习(Inductive Learning)、机器学习(Machine Learning)和统计分析(Statistics)等。特别是机器学习被认为和数据挖掘的关系最为密切。两者的主要区别在于:数据挖掘的任务是发现可以理解的知识,挖掘的对象一般是大规模的数据库;而机器学习关心的是提高系统的性能,一般来说其处理的数据集要小得多。因此,效率问题对数据挖掘是至关重要的。
(二)数据挖掘与OLAP
数据挖掘(DM)和联机分析处理(OLAP)都属于分析型工具,但两者之间有着明显的区别。
数据挖掘是一种有效地从大量数据中发现潜在的数据模式,并作出预测性分析的分析型工具。它是现有的一些人工智能、统计学等成熟技术在特定的数据库领域中的应用。它与其他分析工具最大不同之处在于:它的分析过程是自动的,它能自动地发现隐藏在数据中的模式。一个成熟的数据挖掘系统除了具有良好的核心技术外,还应该具有开放性的结构和友好的用户接口。数据挖掘不需要用户提出确切的问题,而由数据挖掘去挖掘隐藏的模式并预测未来的趋势,这样更有利于发现未知的事实。
联机分析处理(OLAP)是一种自上而下、不断深入的分析工具。首先用户提出问题或假设,然后由OLAP负责自上而下地提取出关于该问题的详细信息,并以可视化的形式呈现给用户。与数据挖掘相比,OLAP更需要依靠用户输入的问题或假设。但用户先入为主的局限性往往会限制问题和假设的范围,从而影响最终的结论。因此,作为验证型分析工具,OLAP更需要对用户的需求有全面而深入的了解。显然,从对数据分析深度的角度来看,OLAP位于较浅的层次,而数据挖掘所处的位置则较深。两者最关键的区别在于信息发现过程是否是自动的。
需要说明的是,数据挖掘并非是一些人想象中的魔法。数据挖掘工具也不是驻扎在数据库中的幽灵,监视着数据库里发生的一举一动,当发现任何有趣的趋势或变化时,便会自动发出一封电子邮件来提醒用户注意。数据挖掘仍然需要用户的主动参与和控制。只有计算机和用户各自承担其最擅长的工作,才能使数据挖掘工具真正发挥出最大的作用。
二、数据挖掘系统的结构
典型的数据挖掘系统结构如图1-2所示,它由以下几个主要成分组成。
1.数据源
数据源可以是一个或多个数据库、数据仓库、电子表格或其他类型的数据库。它们应该是经过集成、过滤和抽取以进一步处理的数据集合。
图1-2 数据挖掘系统结构
2.数据库或数据仓库服务器
根据用户的数据挖掘请求,数据库或数据仓库服务器负责提取相关数据。
3.知识库或模式库
知识库或模式库是存储挖掘出来的中间或最终结果模式和知识,也存储用于指导搜索或评估结果模式的领域知识。这样的知识可能包含不同的抽象层次,适用于不同粒度的知识、多种模式、多种知识的表达形式等。
4.数据挖掘引擎
这是数据挖掘系统最基本的部分,由一组功能模块组成。它具有知识推理机的功能,能反复利用已获得的知识和用户互动,达到最终形成知识模式的目的。用于特征化、关联规则、分类规则、聚类分析以及演变和偏差分析等。
5.模式评估模块
使用兴趣度度量(包括支持度、置信度等),并与数据挖掘模块交互,以便将搜索聚焦在有趣的(Interesting)模式上。为提高挖掘效率,模式评估工作应尽可能深入到挖掘的不同层次中,这样可以保证搜索限制在感兴趣的模式中。
6.可视化用户界面
数据挖掘系统必须允许用户能够指定数据挖掘查询或任务。对有经验的用户,理想的情况应允许他们使用约束条件等形式指导不同阶段的挖掘工作。通过用户和知识库的互动,帮助系统聚焦搜索。在需要的时候,也可以根据数据挖掘的中间结果进行探索式挖掘。此外,用户还可以通过直观而且形式多样的显示方式展现挖掘结果。也可以允许用户浏览数据库和数据仓库模式或数据结构,评估挖掘的模式,帮助用户了解系统的状况。
一般来说,数据挖掘可以在任何类型的信息存储上进行,这包括关系数据库、数据仓库、事务数据库、高级数据库系统、面向特殊应用的数据库和Web网页等。高级数据库系统包括面向对象数据库和对象-关系数据库,面向特殊应用的数据库包括空间数据库、时间序列数据库、文本数据库和多媒体数据库等。
一个实用的数据挖掘系统必须具有以下特征:
(1)快速的响应能力,即便是系统在处理长时间的操作时,也能及时处理用户的指导,并反馈给用户;
(2)处理大数据集的能力,即实现的方法具有较好的时间复杂度;
(3)具有良好的人机交互界面,采用多种形式输出挖掘结果;
(4)具有良好的扩充性,方便加入新的数据挖掘算法;
(5)自适应的选择和建议较好参数及模型的能力,因为用户往往不是专家,无法知道哪种模型适合目前的数据。
三、数据挖掘的分类
近年来,大量的数据挖掘技术和挖掘系统得以开发。从不同的角度出发,可以对数据挖掘进行不同的分类。分类方法主要有根据挖掘的数据库类型分类、根据所采用的技术分类、根据所发现的知识类型分类等几种。
1.根据挖掘的数据库类型分类
数据挖掘系统可以根据所处理的数据库类型进行分类。例如数据库为关系型的,它就是关系型的数据挖掘系统;数据库为面向对象型的,它就是面向对象型的数据挖掘系统。一般来讲,一个数据挖掘系统可以根据不同的数据库类型进行分类:如关系(Relational)型数据库挖掘、事务(Transactional)数据库挖掘、面向对象(Object-Oriented)数据库挖掘、演绎(Deductive)型数据库挖掘、空间(Spatial)数据库挖掘、多媒体(Multimedia)数据库挖掘、异质(Heterogeneous)数据库挖掘、主动(Active)数据库挖掘、时间(Temporal)序列数据库的数据挖掘、基于因特网的数据挖掘、数据仓库(Data Warehouse)挖掘等。
2.根据挖掘的知识类型分类
根据挖掘的知识类型分类可以分为:关联(Association)规则、分类(Classification)规则、特征(Characterization)规则、区分(Discrimination)规则、聚类(Clustering)规则、汇总(Summarization)规则、预测(Prediction)分析、趋势(Trend)分析、演化和差异(Deviation)分析等。
(1)关联(Association)规则
关联规则是发现数据对象间的相互依赖关系。一条关联规则的形式为如果B1,B2,…,Bj出现,则A1,A2,…,Ai就一定出现。这表明数据A1,A2,…,Ai和数据B1,B2,…,Bj有着某种联系。例如,在疾病症状的研究过程中,人们也许会发现某些症状的出现一定会伴随着其他一些症状的出现,通过对这种现象的深入研究,将会有助于疾病的诊断。
购物篮分析问题就是一个非常典型的关联规则挖掘的应用实例。购物篮问题的处理对象称为购物篮数据,即通过对顾客购物车中所购不同商品之间的关联关系的分析,来帮助零售商建立有利的市场经营策略。例如,在经典的“啤酒与尿布”案例中,通过对事务数据库的挖掘,发现在常人看来本来关系不大的啤酒和尿布之间竟然存在某种联系。在购买尿布的顾客中,有很高比例的人同时购买了啤酒,这就是关联规则挖掘发现的一条规则。若商家将尿布和啤酒放在相邻货架销售,将会有助于提高它们的销售量。
(2)分类(Classification)规则
根据数据的不同特征,将其划归不同的类。这些类是事先利用训练数据建立起来的。例如,利用当前的病例数据可以建立各种疾病的分类规则。对于新来的病人,根据其症状及分类规则,可以知道患者疾病的种类。现在已经有许多种数据分类方法,如决策树(ID3 和C4.5)方法、统计方法、神经网络方法和粗糙集(Rough Set)方法等。最近一些面向数据库的分类方法已经开始由Mehta、Agrawal、Rissanen等人进行研究。Han等人在他们开发的知识发现系统DB Miner中采用了基于概括的决策树方法,该方法集成了面向属性的归纳和决策树归纳等技术。
(3)特征(Characterization)规则
指从与学习任务相关的一组数据中提取出关于这些数据的特征式。这些特征式表达了该数据集的总体特征。例如,通过对某种疾病症状的特征提取,得到一组关于该疾病症状的特征式,利用这些特征式可以识别这种疾病。
(4)区分(Discrimination)规则
通过对学习数据和对比数据的处理,提取出关于学习数据的主要特征。这些特征可以将学习数据与对比数据区分开来。例如,通过对某种疾病与其他疾病症状的比较,可以提取出该疾病相对于其他疾病的区分规则,利用这些规则就可以区分出这种疾病。
(5)聚类(Clustering)规则
聚类规则是一种常见的描述工作,搜索并识别一个有限的种类(categories)集合或簇(clusters)集合,从而描述数据。简单地说,就是识别出一组聚类规则,将数据分成若干类。这些种类可能相互排斥而且是穷举的(无遗漏的),或者包含了更丰富的表达形式,例如层次的种类或重叠的种类。知识发现中聚类应用的例子包括,在市场数据库中发现与某些顾客同类的顾客子集,以及从红外天空测量中识别子类光谱等。
(6)汇总(Summarization)规则
汇总规则是指给出一个数据子集,寻求对它的紧致性描述方法。例如可以利用关联规则、可视化技术以及图表形式等方法对其进行描述。
(7)预测(Prediction)分析
预测分析是用一个函数把数据项映射到一个实值的预测变量,发现变量或属性间的依赖关系。预测分析可以应用在很多领域,例如给定远程感应微波度量,预测森林中存在的生物种群数量;给定一组诊断测试的结果,估计某病人死亡的概率;预测顾客对某新产品的需求并写成广告支出的函数;另外,还有时间系列的预测等。
(8)趋势(Trend)分析
趋势分析又称时间序列分析。它能从相当长时间内的发展趋势中发现规律和趋势。
(9)变化和偏差(Deviation)检测
变化和偏差检测主要是以以前测量过的值或标准值为基准,发现数据中最重要的变化。偏差分析包括很大一类潜在的有趣知识,如分类中的反常实例、模式的异常、观测结果对期望的偏离以及测量值随时间的变化等。该方法的基本思想是寻找观察结果与参照量之间有意义的差别。
此外,还有基于模式的相似性搜索、序列模式挖掘、路径发现等。
另外,数据挖掘系统也可以根据其所发现知识的抽象层次分为原始级(Primitive Level)知识、高层次(High Level)知识、多层次(Multiple Level)知识等。一个具有良好伸缩性的数据挖掘系统应该能在多个抽象层次上发现知识。
3.根据采用的方法分类
数据挖掘系统也可以根据所采用数据挖掘方法的驱动类型进行分类。例如根据驱动方法可分为自治的知识挖掘系统、数据驱动的挖掘系统、查询驱动的挖掘系统和交互的挖掘系统等。
为了完成挖掘任务,数据挖掘从一个新的角度将数据库技术、机器学习、统计学等领域技术结合起来,从更深的层次中挖掘存在于数据内部的有效的、新颖的、具有潜在效用的、最终可理解的模式。根据数据挖掘方法所属领域的不同将其分为以下几类。
(1)数学统计方法
使用这种方法一般是首先建立一个数学模型或统计学模型,然后根据这种模型提取出有关的知识。例如,可由训练数据建立一个Bayesian网,然后根据该网的一些参数和联系权值提取出相关的知识。
(2)机器学习方法
大多数机器学习方法是利用人类的认知模型模仿人类的学习方法从数据中提取知识。由于机器学习经过多年的研究,已经取得了一些比较满意的成果,因此在KDD研究中可以充分利用这些技术。
(3)面向数据库的方法
随着数据库技术的发展,其中的一些数据处理方法不断完善并趋于成熟。在KDD研究中,利用现有的一些数据库技术和某些专门针对于数据库的启发式方法,可以提取出数据库中的一些特征知识。
(4)混合方法
上述各种方法各有其优缺点,为提高KDD的效率,可以将各种方法有机地结合在一起,取长补短,以发现更有价值的知识。例如,机器学习中的推导方法可以和演绎数据结合,前者用于知识的推导,后者可以验证所发现知识的正确性。
(5)其他方法
除了上述方法以外,还有其他一些方法,如数据可视化技术,知识表示技术等。
如果更为具体地说,常见的主要有以下几种方法。
①决策树方法
利用信息论中的信息增益寻找数据库中具有最大信息量的字段,建立决策树的一个结点,再根据字段的不同取值建立树的分枝。在每个分枝子集中重复建立树的下层结点和分枝的过程,即可建立决策树。接下来还要对决策树进行剪枝处理,然后把决策树转化为规则,利用这些规则可以对新事物进行分类。典型的决策树方法有分类回归树(如CART、ID3、C4.5等),其中最有影响和最早的决策树方法是Quiulan研制的ID3方法,它对越大的数据库效果越好。后人在ID3方法的基础上又发展了各种决策树方法。
②神经网络方法(www.xing528.com)
用于分类、聚类、特征挖掘、预测和模式识别。神经网络模仿生物神经网络,其本质是一个分布式矩阵结构,通过训练数据的挖掘逐步计算网络连接的权值。神经网络可分为以下三种:
☆ 前馈式网络 它以感知机、反向传播模型、函数型网络为代表,可用于预测、模式识别等方面。
☆ 反馈式网络 它以Hopfield的离散模型和连续模型为代表,分别用于联想记忆和优化计算。
☆ 自组织网络 它以ART模型、Koholon模型为代表,用于聚类。人工神经网络具有分布式存储信息、并行处理信息和进行推理以及自组织自学习等特点,解决了以往众多方法很难解决的问题。
③遗传算法
遗传算法模仿人工选择培育良种的思想,从一个初始规则集(知识基因)开始,逐步通过交换对象成员(杂交、基因突变)产生群体(繁殖),评价并择优复制(适者生存,不适者淘汰),迭代积累计算,最后得到优化的知识集。
④覆盖正例排斥反例方法
它是利用覆盖所有正例排斥所有反例的思想来寻找规则。比较典型的有Michalski的AQ15方法、洪家荣改进的AQ15方法和AE5方法等。
⑤粗糙集(Rough Set)方法
用于数据简化、数据的意义评估、对象相似或差异性分析、因果关系及范式挖掘等。粗糙集(Rough Set)理论由Z.Pawlak在20世纪80年代提出,用于处理不确定性。其主要思想为把对象的属性分为条件属性和决策属性。
⑥统计分析方法
主要用于完成汇总知识和关联知识的挖掘。对关系表中各属性进行统计分析,找到它们之间潜在的关系。关系表的属性之间一般存在以下两种关系:
☆ 函数关系 能用函数公式表示的确定性关系。
☆ 相关关系 不能用函数公式表示,但仍是相关确定关系。
对它们的分析可以采用回归分析、相关分析、主成分分析等统计分析方法。
⑦模糊论方法
利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。模糊性是客观存在的,系统的复杂性越高,精确化能力就越低,也就意味着模糊性越强。这是扎德(Zadeh)总结出的互克性原理。
⑧可视化技术
用直观图形将信息模式、数据的关联或趋势呈现给决策者,使用户能交互地分析数据之间的关系。可视化技术将人的观察力和智能融入挖掘系统,极大地改善了系统挖掘的速度和深度。
四、数据挖掘算法的组成
在任何数据挖掘算法中都含有三个主要成分:模型表示、模型评价标准和发现方法。
1.模型表示
模型表示是用于描述可发现的模式的语言。如果语言的描述能力较强,就有助于发现精确的数据模型;反之,如果语言描述能力太弱,那么就没有训练时间或例子会对数据产生精确的模型。因此,数据分析员必须全面理解某个特定方法所固有的描述性假设,而算法设计者要明确地对其加以表述。但需要注意的是描述能力过强的语言有可能会导致模型的训练数据过于一般化,从而降低预测的精确度。此外,搜索也会变得更加复杂,而模型的解释会更困难。常用的模型表示方法有决策树、非线性回归、基于案例的推理、Bayesian网络和归纳逻辑程序设计等。
2.模型评价标准
定量评价一个特定模式(一个模型和其参量)符合KDD进程准则的程度。对预测类的模型,可以利用一些测试数据集来评价其精确度,其基础是交叉验证。对描述类的模型,可以在精确度、新颖性、实用性和拟合模型的可理解性等多个方面进行评价。模型评价既可用逻辑的准则,也可用统计的准则。例如最大似然率原理选择的模型参量与训练数据会产生最佳拟合。
3.发现方法
分为参量搜索和模型搜索。在上述模型表示和模型评价标准被确定之后,数据挖掘就完全变成了一个优化任务。即从数据的描述中发现最适合评价标准的参量或模型。具体说来,参量搜索就是在确定观察数据和固定的模型表示之后,搜寻最适合模型评价准则的参量。模型搜索是在参量搜索方法基础上的循环试探过程,不断改变模型表示,最后确定恰当数量的模型。
一般说来,并不存在一个普遍适用的算法。一个算法在某个领域里非常有效,但在另一个领域却可能不太适合。例如决策树分类法在问题维数高的领域中可以得到很好的分类结果,但对数据类之间的决策分界采用二次多项式描述的分类问题却不太适用。因此,在实际应用中,要针对特定的领域,精心选择有效的数据挖掘算法。换句话说,实际的开发工作往往转变成领域问题、领域知识和发现任务的形式化,而不是对所选择的数据挖掘算法进行细节上的优化。
五、数据挖掘的工具
目前数据挖掘工具主要是基于数据库技术、人工智能技术和统计分析技术等。如人工智能技术中的决策树、规则归纳、神经元网络、可视化技术、模糊建模、簇聚等。另外,也采用了传统的统计方法。这些数据挖掘工具差别很大,不仅体现在关键技术上,还体现在运行平台、数据存取、价格等方面。根据不同的分类方法可以将数据挖掘工具分为不同的类。
1.按照挖掘工具运行的平台划分
可分为基于Windows的挖掘工具、基于Linux的挖掘工具和基于Solaris的挖掘工具等。
2.按照一般的分类方法划分
可分为特定领域的数据挖掘工具和通用的数据挖掘工具。
(1)特定领域的数据挖掘工具
用以针对某个特定领域的问题提供解决方案,其针对性比较强,常常采用一些特殊的算法,可以处理特殊的数据,实现特殊的目的。例如,IBM公司的Advance Scout系统可以针对NBA的数据,帮助教练优化战术组合。
(2)通用数据挖掘工具
是不区分具体数据的含义,采用通用的挖掘算法处理常用的数据类型。例如,IBM公司Almaden研究中心开发的Quest系统、SGI公司开发的SGI Minese、加拿大Simon Fraser大学开发的DB Miner系统等。
3.按照应用领域划分
可分为通用单任务类、通用多任务类、专用领域类。
(1)通用单任务类
仅支持KDD的数据挖掘(DM)步骤,并且需要大量的预处理和善后处理工作。主要采用决策树、神经网络、基于例子和规则的方法,发现任务大多属于分类范畴。
(2)通用多任务类
可执行多个领域的知识发现任务,集成了分类、可视化、聚集、概括等多种策略,如Clementine、IBM Intelligent Miner、SGI Mineset等。
(3)专用领域类
现有许多数据挖掘(DM)系统大多是专为特定目的而开发的,用于专用领域的知识发现,对挖掘的数据库有语义要求,发现的知识也比较单一。如Explora用于超市销售分析,仅能处理特定形式的数据。知识发现也以关联规则和趋势分析为主。另外,虽然有些系统能发现多种形式的知识,但基本上以机器学习、统计分析为主,计算量较大。
4.按照挖掘工具所采用的技术划分
大致可以分为以下六类。
(1)基于规则和决策树的工具
大部分数据挖掘(DM)工具采用规则发现和决策树分类技术来发现数据模式和规则。其核心是某种归纳算法,如ID3和C4.5。它通常先对数据库中的数据进行挖掘,生成规则和决策树,然后对新数据进行分析和预测。典型的产品有Angoss Software开发的Knowlege Seeker和ATTAR Software开发的XpertRule Profiler等。
(2)基于神经元网络的工具
基于神经元网络的工具由于具有对非线性数据的快速建模能力,因此越来越流行。挖掘过程基本上是将数据簇聚,然后分类计算权值。它在市场数据库的分析和建模方面应用十分广泛,典型的产品有Advanced Software开发的PB Profile等。
(3)数据可视化方法
这类工具大大地扩展了传统商业图形的能力,支持多维数据的可视化,同时提供了多方向同时进行数据分析的图形方法。
(4)模糊发现方法
应用模糊逻辑进行数据查询排序。
(5)统计方法
这些工具没有使用人工智能技术,因此更适于分析现有信息,而不是从原始数据中发现数据模式和规则。
(6)综合多方法
许多工具采用了多种挖掘方法,一般规模较大。典型的产品有IBM开发的IBM Intelligent Miner。工具系统的总体发展趋势是使数据挖掘(DM)技术进一步为用户接受和使用。另一方面也可以理解成以使用者的语言表达知识概念。
六、典型的数据挖掘系统
数据挖掘的研究日新月异,数据挖掘系统也不断出现。许多著名的公司或研究机构纷纷推出了自己的商业化数据挖掘系统,下面介绍一些比较著名的数据挖掘系统。
1.Quest系统
Quest系统是由IBM公司的Alamaden研究中心开发的一个多任务数据挖掘系统。该系统主要面向大型数据库,可以从各种数据中发现多种知识,包括关联规则发现、序列模式发现、时间序列聚类、决策树分类、模式匹配与分析、递增式主动挖掘等。
2.Intelligent Miner系统
该软件是由美国IBM公司开发的面向数据库和文本信息进行数据挖掘的软件系列。它包括Intelligent Miner for Data和Intelligent Miner for Text。Intelligent Miner for Data可以挖掘包含在数据库、数据仓库、数据中心中的隐含信息,帮助用户利用传统数据库或普通文件中的结构化数据进行数据挖掘,它已经成功应用于市场分析、诈骗新闻监测及客户联系管理等;Intelligent Miner for Text允许企业从文本信息中进行数据挖掘,文本数据源可以是文本文件、Web页面、电子邮件等,该系统人机交互界面友好,功能十分强大。
3.KEFIR系统
由KDD先驱Piatetsky Shapiro等人在GTE实验室开发成功,主要用于从健康数据中挖掘相关的知识和规则。
4.MineSet系统
MineSet系统是由SGI公司和美国Standford大学联合开发的多任务数据挖掘系统。该系统集成多种数据挖掘算法和可视化工具,帮助用户直观地、实时地挖掘、理解大量数据背后的知识。
5.SAS Enterprise Miner系统
这是一种在我国的企业中得到应用的数据挖掘系统,比较典型的包括上海宝钢集团公司的配矿系统应用和铁路部门在春运客运分析研究中的应用。
6.SPSS Clementine系统
SPSS Clementine系统是一个开放式数据挖掘工具,曾两次获得英国政府SMART奖。它不只支持整个数据挖掘流程,还包括从数据获取、转化、建模、评估到最终部署的全部过程。SPSS Clementine提供了多种图形化技术,有助于理解数据间的关键性联系,指导用户以最便捷的途径找到问题的最终解决办法。
7.IMACS系统
由AT&T的Branchman等人开发,采用了较复杂的知识表达方式,用于知识库的建构。
8.DB Miner系统
由加拿大西蒙弗瑞斯(Simon Fraser)大学开发的多任务数据挖掘系统。系统设计的目的是把关系数据库和数据挖掘集成在一起,以面向属性的多级概念为基础发现各种知识。它可以运行在Windows和Unix平台,能够挖掘多种数据源、多个层次的知识,包括特征规则、分类规则、关联规则的挖掘。该系统人机交互界面友好,功能较强,运行效率较高。
9.INLEN系统
由乔治梅森大学的Michalski等人研究开发,是一个多种学习策略集成的数据挖掘系统。
10.Explora系统
由GMD的Klosgen等研究开发成功,这是一个多模式、多策略发现的辅助发现系统。
七、数据挖掘的应用
目前,数据挖掘应用最集中的领域主要包括以下七个方面,但每个领域又有其特定的应用问题和应用背景。
1.金融服务
金融事务需要收集和处理大量的数据,对数据进行分析,发现其数据模式及特征,然后可能发现某个客户、消费群体或组织的金融和商业兴趣,并可以观察金融市场的变化趋势。数据挖掘在金融领域中应用广泛,其中包括:
(1)数据清理、金融市场分析和预测
财经分析需要依赖各种来源的数据,这些数据可能包含错误的信息或丢失的信息,有时数据还会表达相互矛盾的信息。因此,对数据进行清理或联机验证是十分重要的。Lockheed的Recon曾用于清理一个有2200个墨西哥和英国政府债券及欧洲债券的数据库,以辅助投资决策,并进行预测。
(2)账户分类、银行担保和信用评估
金融业务的利润和风险是共存的。为了保证最大的利润和最小的风险,必须对账户进行科学的分析和归类,并进行信用评估。The Leeds就使用XpertRule Analyzer进行分析并建立模型,预测该组织内50万贷款账户的欠款情况,并分析可能欠款的账户的关键特征。
2.医疗保健
医疗保健行业有大量的数据需要处理。但这个行业的数据一般是由不同的信息系统所管理的,数据以不同的格式保存;从总体上看,数据是无组织的。在这个行业中,数据挖掘最关键的任务是进行数据清理,预测医疗保健的费用。
3.市场业
市场业应用数据挖掘技术进行市场定位和消费者分析,辅助制定市场策略等。例如Dickinson Direct是一个市场分析公司,他们为AT&T、IBM、PowerSoft这样的客户工作。Dickinson Direct使用Information Harvester的规则归纳、模糊推理及统计对客户的历史数据进行分析,得出产品的销售趋势。
4.零售业
零售业是最早应用数据挖掘技术的行业。目前主要应用于销售预测、库存需求、商业网点选择和价格分析等。例如Automated Wagering公司使用Advanced Software Applications的ModelMax预测模型,结合地理信息分析开发了Lottery Machine Site Selection以决定在佛罗里达州安装彩票销售机的最佳地点。
5.制造业
制造业应用数据挖掘技术进行零部件故障诊断、资源优化、生产过程分析等。例如HP公司的工程师使用Angoss Software的Knowledge Seeker来进行HP IIc彩色扫描仪的生产过程分析。他们基于大约200个参数建立了一个自动数据收集系统,产生了难以手工处理的大量数据。他们通过使用Knowledge Seeker来减少组装过程中使扫描光学仪器正确对齐的固定过程的错误。通过对生产数据进行分析,还能发现一系列装配过程中哪一阶段最容易产生错误。
6.司法
数据挖掘技术还可以应用于案件调查、诈骗监测、洗钱认证、犯罪组织分析等方面。数据挖掘技术的应用可以给司法工作带来巨大的收益。例如,美国财政部使用NetMap开发的FAIS系统对各类金融事务进行监测,识别洗钱、诈骗等。该系统从1993年3月开始运行,每周大约处理20万个事务,针对超过1亿美元并可能是洗钱的事务产生了很多非常有价值的调查报告。
7.工程和科学
数据挖掘技术可应用于各种工程与科学数据分析。例如Jet Propulsion实验室利用决策树方法对上百万天体进行分类,挖掘效果高效准确。这个系统还帮助发现了10多个新的类星体。
随着数据挖掘技术水平的不断提高以及相关领域的继续发展,数据挖掘的应用前景将会越来越广阔。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。